Part Number Hot Search : 
HMS51 3MJE883 ACST4108 2SA505 SA102 227M004 227M004 LS150
Product Description
Full Text Search
 

To Download NQ6311 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  document number: 313082-001 intel ? 631xesb/632xesb i/o controller hub datasheet may 2006
2 intel ? 631xesb/632xesb i/o controller hub datasheet information in this document is provided in connection with intel ? products. no license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. except as provided in intel's terms and conditions of sale for such products, intel assumes no liability whatsoever, and intel disclaims any express or implied warranty, relating to sale and/or use of intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. intel products are not intended for use in medical, life saving, or life sustaining applications. intel may make changes to specifications and product descriptions at any time, without notice. designers must not rely on the absence or characteristics of any features or instructions marked ?reserved? or ?undefined.? int el reserves these for future definition and shall have no respon sibility whatsoever for conflicts or incompatibilities arising fro m future changes to them. the intel? 631xesb/632xesb i/o controller hub component may contain design defects or errors known as errata which may cause the product to deviate from published specifications. current characterized errata are available on request. contact your local intel sales office or your distributor to obta in the latest specifications and before placing your product o rder. copies of documents which have an ordering number and are referenced in this document, or other intel literature may be obtained by calling 1-800-548-4725 or by visiting intel's website at http://developer.intel.com/products/index.htm. i 2 c is a two-wire communications bus/protocol developed by philips. smbus is a subset of the i 2 c bus/protocol and was developed by intel. implementations of the i 2 c bus/protocol may require licenses from various entities, including philips electronics n.v. and north american philips corporation. alert on lan is a result of the intel-ibm advanced manageability alliance and a trademark of ibm. intel, intel speedstep, itanium, and the intel logo are trademarks or registered trademarks of intel corporation or its subsidi aries in the united states and other countries. *other names and brands may be claimed as the property of others. copyright ? 2006, intel corporation
intel ? 631xesb/632xesb i/o controller hub datasheet 3 intel ? 631xesb/632xesb i/o controller hub features ? interfaces to memory controller hub ? enterprise south bridge interface: 1 gb/s each direction, full duplex, transparent to software ? x4/x8 pci express* interface ? pci express root port ? 4 pci express root ports ? fully pci express 1.0a compliant ? can be statically configured as 4x1, or 1x4 ? support for full 2.5 gb/s bandwidth in each direction ? module-based hot-plug supported ? pci express downstream ports ? two x4 or one x8 pci express 1.0a compliant ports ? hot-plug support for evolutionary (card-edge) form factor ? pci bus interface ? supports pci rev 2.3 specification at 33 mhz ? seven available pci req/gnt pairs ? support for 64-bit addressing on pci using dac protocol ? pci/pci-x* bus interface ? configurable as 33- or 66- mhz pci, 66-, 100-, or 133-mhz pci-x ? supports standard hot-plug controller 1.0 specification ? integrated serial ata host controller ? independent dma operation on six ports ? data transfer rates up to 3.0 gb/s (300 mb/s) ? tri-state modes to enable swap bay ? integrated ide controller ? independent timing of up to two drives ? ultra ata/100/66/33, bmide and pio modes ? usb 2.0 ? includes four uhci host controllers, increasing the number of external ports to eight ? includes one ehci host controller that supports all eight ports ? includes one usb 2.0 high-speed debug port ? supports wake-up from sleeping states s1-s5 ? supports legacy keyboard/mouse software ? high definition audio interface ? independent bus master logic for eight general purpose streams: four input and four output ? support three external codecs ? supports variable length stream slots ? supports 8 channel, 24-bit samples, 192 khz sample rate output ? supports an array of up to six microphone inputs ? supports memory-based command/response transport ? provides cadence for non-48 khz sampling output ? ac-link for audio and telephony codecs ? support for three ac ?97 2.3 codecs. ? independent bus master logic for 8 channels (pcm in/out, pcm 2 in, mic 1 input, mic 2 input, modem in/out, s/pdif out) ? support for up to six channels of pcm audio output (full ac3 decode) ? timers based on 82c54 ? system timer, refresh request, speaker tone output ? power management logic ? acpi 2.0 compliant ? acpi-defined power states ? acpi power management timer ?pme# support ?smi# generation ? all registers readable/restorable for proper resume from 0 v suspend states ? external glue integration ? integrated pull-up, pull-down and series termination resistors on ide, processor interface ? integrated pull-down and series resistors on usb ? enhanced dma controller ? two cascaded 8237 dma controllers ?supports lpc dma ? integrated dual-gigabit media access controller ? compliant with the 1000 mb/sec ethernet/802.3z specification ? multi-speed operation: 10/100/1000mb/s ? serial flash interface and spi eeprom interface. no support for uwire eeprom. ? serdes interface for system interconnect ? kumeran interface to external gigabit ethernet phy ? dual kumeran interface to two external 1000base-t phys ? 4 pin per port interface (dual port) ? in band mdio for faster accesses ? remote phy debug and diagnostics ? integrated board management controller ? full bmc implementation, meaning a standalone microcontroller with independent i/os and memory ? expansion bus for use with external flash device, sram and sdram ? 256 kbytes of internal sram ? support for rmcp+ ? cryptographic module, supporting aes and rc4 encryption algorithms and sha1 and md5 authentication algorithms ? external board management controller support ? pass through and super pass through capable via a tco port ? tco port supports smbus, fast management link (fml), and i 2 c commands for passing traffic ? manageability fail-over ?ide re-direction ? serial over lan (sol) ?rmcp+ support
4 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? 631xesb/632xesb i/o controller hub diagram esb 2 intel? 5000 series chipsets 6port sata north bridge north north bridge bridge ide pci - 32/33 pci express 4x1 1x4 pci-x two pci express x4, or 1 pci express x8 2x4 or 1x8 pci express gilgal 82563 eb / 82564 eb esi lsio lsio lsio lpc 8x usb audio bmc bmc flash flash flash dual gbe mac ? intel 631 xesb /632 xesb i/o controller hub
intel ? 631xesb/632xesb i/o controller hub datasheet 5 contents 1introduction ............................................................................................................ 37 1.1 about this document......................................................................................... 37 1.2 overview ......................................................................................................... 40 1.3 intel ? 631xesb/632xesb i/o controller hub sku definition ................................... 48 2 signal descriptions .................................................................................................. 49 2.1 enterprise south bridge interface (esi) to host controller ...................................... 53 2.2 pci express* interface....................................................................................... 53 2.3 pci interface .................................................................................................... 54 2.4 pci/pci-x* bus interface ................................................................................... 57 2.5 pci/pci-x* bus interface 64-bit extension............................................................ 59 2.6 pci/pci-x hot-plug interface .............................................................................. 59 2.7 interrupt interface ............................................................................................ 63 2.8 kumeran and serdes interface .......................................................................... 64 2.9 serial ata interface........................................................................................... 64 2.10 ide interface .................................................................................................... 65 2.11 firmware hub interface...................................................................................... 66 2.13 usb interface ................................................................................................... 67 2.14 ac ?97 link....................................................................................................... 68 2.15 processor interface............................................................................................ 68 2.16 smbus interface................................................................................................ 70 2.17 power management interface.............................................................................. 70 2.18 system management interface............................................................................ 71 2.19 flash and eeprom interface ............................................................................... 72 2.20 expansion bus interface ..................................................................................... 72 2.21 rs-232 interface............................................................................................... 73 2.22 real time clock interface ................................................................................... 73 2.23 jtag interface .................................................................................................. 74 2.24 other clocks..................................................................................................... 74 2.25 general purpose i/o .......................................................................................... 74 2.26 miscellaneous signals ........................................................................................ 76 2.27 power and ground ............................................................................................. 77 2.28 pin straps ........................................................................................................ 79 2.29 intel ? 631xesb/632xesb i/o controller hub revision and device id table ............... 82 3intel ? 631xesb/632xesb i/o controller hub and system clock domains ............... 85 4intel ? 631xesb/632xesb i/o controller hub pin states ......................................... 87 4.1 integrated pull-ups and pull-downs ..................................................................... 87 4.2 ide integrated series termination resistors ......................................................... 91 4.3 output and i/o signals planes and states............................................................. 91 4.4 power planes for input signals ............................................................................ 97 5 functional description ........................................................................................... 101 5.1 pci express* bridge, switch, and endpoints........................................................ 103 5.1.1 pci express* upstream ports .............................................................. 103 5.1.2 pci express* to pci-x* bridge (bm:d0:f3)........................................... 104 5.1.3 pci express* downstream ports (bp:d0:f0; bp:d1:f0).......................... 116 5.1.4 i/oxapic devices (bm:d0:f1). ........................................................... 121 5.1.5 flow control ..................................................................................... 124 5.2 pci express* root ports (d28:f0,f1,f2,f3) ........................................................ 125 5.2.1 interrupt generation .......................................................................... 125 5.2.2 power management ........................................................................... 126 5.2.3 serr# generation............................................................................. 127
6 intel ? 631xesb/632xesb i/o controller hub datasheet 5.2.4 hot-plug ........................................................................................... 127 5.3 pci-to-pci bridge (d30:f0)............................................................................... 129 5.3.1 pci bus interface ............................................................................... 129 5.3.2 pci bridge as an initiator .................................................................... 129 5.3.3 parity error detection and generation ................................................... 131 5.3.4 pcirst#........................................................................................... 132 5.3.5 pci-to-pci bridge model ..................................................................... 132 5.3.6 idsel to device number mapping ........................................................ 132 5.3.7 standard pci bus configuration mechanism ........................................... 132 5.4 integrated lan controller and serdes/kumeran interface.................................... 133 5.4.1 integrated lan controller ................................................................... 133 5.4.2 packet reception and transmission ...................................................... 135 5.4.3 buffer and descriptor structure............................................................ 135 5.4.4 lan controller pci express* bus interface ............................................ 135 5.4.5 wake-up .......................................................................................... 140 5.4.6 csma/cd unit ................................................................................... 144 5.4.7 802.1q vlan support ......................................................................... 145 5.4.8 eeprom interface .............................................................................. 146 5.4.9 serial flash interface.......................................................................... 146 5.4.10 intel ? 631xesb/632xesb i/o controller hub mac-phy interconnection..... 148 5.4.11 lan disabling .................................................................................... 149 5.5 board management controller (bmc).................................................................. 151 5.5.1 management microcontroller system theory of operation ........................ 151 5.5.2 feature list....................................................................................... 151 5.5.3 memory sub-system .......................................................................... 152 5.5.4 instruction cache and data cache ........................................................ 153 5.5.5 external interfaces............................................................................. 153 5.5.6 memory host dma ............................................................................. 160 5.5.7 cryptography module ......................................................................... 161 5.6 lpc bridge (with system and management functions) (d31:f0)............................. 162 5.6.1 lpc interface .................................................................................... 162 5.7 dma operation (d31:f0) .................................................................................. 166 5.7.1 channel priority ................................................................................. 167 5.7.2 address compatibility mode................................................................. 168 5.7.3 summary of dma transfer sizes .......................................................... 168 5.7.4 autoinitialize ..................................................................................... 169 5.7.5 software commands .......................................................................... 170 5.8 lpc dma ........................................................................................................ 170 5.8.1 asserting dma requests ..................................................................... 170 5.8.2 abandoning dma requests .................................................................. 171 5.8.3 general flow of dma transfers ............................................................ 171 5.8.4 terminal count .................................................................................. 172 5.8.5 verify mode....................................................................................... 172 5.8.6 dma request de-assertion .................................................................. 172 5.8.7 sync field / ldrq# rules .................................................................. 173 5.9 8254 timers (d31:f0) ...................................................................................... 174 5.9.1 timer programming............................................................................ 174 5.9.2 reading from the interval timer .......................................................... 175 5.10 8259 interrupt controllers (pic) (d31:f0)........................................................... 176 5.10.1 interrupt handling ............................................................................. 177 5.10.2 initialization command words (icwx) .................................................. 179 5.10.3 operation command words (ocw)....................................................... 180 5.10.4 modes of operation ............................................................................ 180 5.10.5 masking interrupts ............................................................................. 182 5.10.6 steering pci interrupts ....................................................................... 183 5.11 advanced programmable interrupt controller (apic) (d31:f0)............................... 183
intel ? 631xesb/632xesb i/o controller hub datasheet 7 5.11.1 interrupt handling ............................................................................. 183 5.11.2 interrupt mapping.............................................................................. 183 5.11.3 pci/pci express* message-based interrupts ......................................... 184 5.11.4 system bus interrupt delivery ............................................................ 185 5.12 serial interrupt (d31:f0) ................................................................................. 187 5.12.1 start frame ...................................................................................... 187 5.12.2 data frames ..................................................................................... 187 5.12.3 stop frame....................................................................................... 188 5.12.4 specific interrupts not supported by way of serirq .............................. 188 5.12.5 data frame format............................................................................ 188 5.13 real time clock (d31:f0)................................................................................. 189 5.13.1 update cycles ................................................................................... 190 5.13.2 interrupts......................................................................................... 190 5.13.3 lockable ram ranges ........................................................................ 190 5.13.4 century rollover ............................................................................... 190 5.13.5 clearing battery-backed rtc ram ....................................................... 191 5.14 processor interface (d31:f0) ............................................................................ 192 5.14.1 processor interface signals ................................................................. 192 5.14.2 dual-processor issues ........................................................................ 195 5.15 power management (d31:f0) ........................................................................... 195 5.15.1 features........................................................................................... 195 5.15.2 intel ? 631xesb/632xesb i/o controller hub and system power states .... 196 5.15.3 system power planes ......................................................................... 198 5.15.4 smi#/sci generation......................................................................... 198 5.15.5 dynamic processor clock control ......................................................... 200 5.15.6 sleep states ..................................................................................... 201 5.15.7 thermal management ........................................................................ 204 5.15.8 event input signals and their usage .................................................... 205 5.15.9 alt access mode ............................................................................... 208 5.15.10 system power supplies, planes, and signals.......................................... 211 5.15.11 clock generators ............................................................................... 213 5.15.12 legacy power management theory of operation .................................... 213 5.16 system management (d31:f0).......................................................................... 213 5.16.1 theory of operation ........................................................................... 214 5.16.2 heartbeat and event reporting by way of smbus .................................. 217 5.17 ide controller (d31:f1) ................................................................................... 221 5.17.1 pio transfers.................................................................................... 221 5.17.2 bus master function........................................................................... 223 5.17.3 ultra ata/100/66/33 protocol ............................................................. 226 5.17.4 ultra ata/33/66/100 timing ............................................................... 227 5.17.5 ide swap bay ................................................................................... 227 5.17.6 smi trapping .................................................................................... 228 5.18 sata host controller (d31:f2).......................................................................... 228 5.18.1 legacy operation .............................................................................. 228 5.18.2 ahci operation ................................................................................. 231 5.19 high-precision event timers ............................................................................. 235 5.19.1 timer accuracy ................................................................................. 236 5.19.2 interrupt mapping.............................................................................. 236 5.19.3 periodic versus non-periodic modes ..................................................... 236 5.19.4 enabling the timers ........................................................................... 237 5.19.5 interrupt levels ................................................................................ 237 5.19.6 handling interrupts............................................................................ 237 5.19.7 issues related to 64-bit timers with 32-bit processors ........................... 238 5.20 usb uhci host controllers (d29:f0, f1, f2, and f3)............................................ 238 5.20.1 data structures in main memory .......................................................... 238 5.20.2 data transfers to/from main memory ................................................... 238
8 intel ? 631xesb/632xesb i/o controller hub datasheet 5.20.3 data encoding and bit stuffing ............................................................ 239 5.20.4 bus protocol ...................................................................................... 239 5.20.5 packet formats.................................................................................. 240 5.20.6 usb interrupts .................................................................................. 240 5.20.7 usb power management ..................................................................... 242 5.20.8 usb legacy keyboard operation .......................................................... 243 5.21 usb ehci host controller (d29:f7).................................................................... 246 5.21.1 ehc initialization ............................................................................... 246 5.21.2 data structures in main memory .......................................................... 247 5.21.3 usb 2.0 enhanced host controller dma ................................................ 247 5.21.4 data encoding and bit stuffing ............................................................ 247 5.21.5 packet formats.................................................................................. 247 5.21.6 usb 2.0 interrupts and error conditions ............................................... 247 5.21.7 usb 2.0 power management................................................................ 248 5.21.8 interaction with uhci host controllers .................................................. 250 5.21.9 usb 2.0 legacy keyboard operation..................................................... 252 5.21.10 usb 2.0 based debug port .................................................................. 252 5.22 smbus............................................................................................................ 257 5.22.1 smbus controller (d31:f3).................................................................. 257 5.22.2 smbus slave interface in pci express to pci-x bridge............................. 269 5.23 ac?97 controller (audio d31:f5, modem d31:f6)................................................. 276 5.23.1 pci power management ...................................................................... 278 5.23.2 ac-link overview .............................................................................. 279 5.23.3 ac-link low power mode .................................................................... 282 5.23.4 ac?97 cold reset ............................................................................... 283 5.23.5 ac?97 warm reset ............................................................................. 283 5.23.6 hardware assist to determine acz_sdin used per codec ....................... 284 5.24 intel? high definition audio controller overview ................................................. 284 6 electrical characteristics ........................................................................................ 287 7 component ballout ................................................................................................. 303 7.1 intel ? 631xesb/632xesb i/o controller hub ballout ............................................ 303 8signal lists ............................................................................................................ 307 8.1 intel ? 631xesb/632xesb i/o controller hub signal list (sorted by signal name) .... 307 8.2 intel ? 631xesb/632xesb i/o controller hub signal list (sorted by ball number)..... 323 9 mechanical specifications ...................................................................................... 339 10 testability .............................................................................................................. 343 10.1 jtag test mode description .............................................................................. 343 10.2 xor chain test mode description ...................................................................... 344 10.2.1 xor chain testability algorithm example .............................................. 345 10.3 xor chain tables ............................................................................................ 345 11 register and memory mapping ............................................................................... 351 11.1 register nomenclature and access attributes ...................................................... 351 11.2 pci devices and functions ................................................................................ 352 11.3 pci configuration map ...................................................................................... 353 11.4 i/o map.......................................................................................................... 353 11.4.1 fixed i/o address ranges ................................................................... 353 11.4.2 variable i/o decode ranges ................................................................ 355 11.5 memory map ................................................................................................... 356 12 chipset configuration registers ............................................................................. 359 12.1 chipset configuration registers (memory space) ................................................. 359 12.1.1 vch ? virtual channel capability header register................................... 361 12.1.2 vcap1 ? virtual channel capability #1 register ..................................... 361 12.1.3 vcap2 ? virtual channel capability #2 register ..................................... 361
intel ? 631xesb/632xesb i/o controller hub datasheet 9 12.1.4 pvc ? port virtual channel control register .......................................... 362 12.1.5 pvs ? port virtual channel status register............................................ 362 12.1.6 v0cap ? virtual channel 0 resource capability register ......................... 362 12.1.7 v0ctl ? virtual channel 0 resource control register ............................. 362 12.1.8 v0sts ? virtual channel 0 resource status register .............................. 363 12.1.9 v1cap ? virtual channel 1 resource capability register ......................... 363 12.1.10 v1ctl ? virtual channel 1 resource control register ............................. 364 12.1.11 v1sts ? virtual channel 1 resource status register .............................. 364 12.1.12 pat[0-f] ? port arbitration table register............................................. 364 12.1.13 ues ? uncorrectable error status register ............................................ 365 12.1.14 uem ? uncorrectable error mask register.............................................. 365 12.1.15 uev ? uncorrectable error severity register.......................................... 366 12.1.16 ces ? correctable error status register ............................................... 366 12.1.17 cem ? correctable error mask register ................................................. 366 12.1.18 aecc ? advanced error capabilities and control register ........................ 367 12.1.19 res ? root error status register ......................................................... 367 12.1.20 esid ? error source identification register ........................................... 367 12.1.21 rctcl ? root complex topology capabilities list register ...................... 368 12.1.22 esd ? element self description register ............................................... 368 12.1.23 uld ? upstream link descriptor register .............................................. 368 12.1.24 ulba ? upstream link base address register........................................ 368 12.1.25 rp0d ? root port 0 descriptor register ................................................ 369 12.1.26 rp0ba ? root port 0 base address register .......................................... 369 12.1.27 rp1d ? root port 1 descriptor register ................................................ 369 12.1.28 rp1ba ? root port 1 base address register .......................................... 370 12.1.29 rp2d ? root port 2 descriptor register ................................................ 370 12.1.30 rp2ba ? root port 2 base address register .......................................... 370 12.1.31 rp3d ? root port 3 descriptor register ................................................ 371 12.1.32 rp3ba ? root port 3 base address register .......................................... 371 12.1.33 azd ? high definition audio descriptor register .................................... 371 12.1.34 azba ? high definition audio base address register .............................. 372 12.1.35 ilcl ? internal link capabilities list register ........................................ 372 12.1.36 lcap ? link capabilities register ......................................................... 372 12.1.37 lctl ? link control register ............................................................... 373 12.1.38 lsts ? link status register ................................................................ 373 12.1.39 vpcap ? private virtual channel resource capability register.................. 373 12.1.40 vpctl ? private virtual channel resource control register...................... 374 12.1.41 vpsts ? private virtual channel resource status register ...................... 374 12.1.42 vpr ? private virtual channel routing register ...................................... 374 12.1.43 l3a ? level 3 backbone arbiter configuration register ........................... 375 12.1.44 l2a ? level 2 backbone arbiter configuration register ........................... 375 12.1.45 l1a ? level 1 backbone arbiter configuration register ........................... 376 12.1.46 da ? downstream arbiter configuration register ................................... 376 12.1.47 unrl ? upstream non-posted request limits register ........................... 377 12.1.48 umr ? upstream minimum reserved register........................................ 378 12.1.49 ql ? queue limits register ................................................................. 378 12.1.50 gbc ? generic backbone configuration register .................................... 379 12.1.51 rpc ? root port configuration register................................................. 380 12.1.52 bac ? bandwidth allocation configuration register................................. 380 12.1.53 as ? arbiter status register................................................................ 381 12.1.54 trsr ? trap status register ............................................................... 381 12.1.55 trcr ? trapped cycle register............................................................ 382 12.1.56 twdr ? trapped write data register ................................................... 382 12.1.57 iotrn ? i/o trap register (0-3) .......................................................... 382 12.1.58 tctl ? tco configuration register ...................................................... 383 12.1.59 d31ip ? device 31 interrupt pin register .............................................. 384
10 intel ? 631xesb/632xesb i/o controller hub datasheet 12.1.60 d30ip ? device 30 interrupt pin register .............................................. 384 12.1.61 d29ip ? device 29 interrupt pin register .............................................. 385 12.1.62 d28ip ? device 28 interrupt pin register .............................................. 386 12.1.63 d27ip ? device 27 interrupt pin register .............................................. 386 12.1.64 d31ir ? device 31 interrupt route register .......................................... 387 12.1.65 d30ir ? device 30 interrupt route register .......................................... 388 12.1.66 d29ir ? device 29 interrupt route register .......................................... 389 12.1.67 d28ir ? device 28 interrupt route register .......................................... 390 12.1.68 d27ir ? device 27 interrupt route register .......................................... 391 12.1.69 oic ? other interrupt control register.................................................. 392 12.1.70 rc ? rtc configuration register .......................................................... 392 12.1.71 hptc ? high precision timer configuration register ................................ 392 12.1.72 gcs ? general control and status register............................................ 393 12.1.73 buc ? backed up control register........................................................ 394 12.1.74 fd ? function disable register............................................................. 395 12.1.75 cg ? clock gating .............................................................................. 396 13 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) ................................................ 397 13.1 pci configuration registers............................................................................... 397 13.2 memory-mapped registers ................................................................................ 398 13.3 pci express* switch, upstream/downstream port registers (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) ........................................... 398 13.3.1 configuration registers....................................................................... 398 13.4 pci express* switch, upstream/downstream port (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) enhanced ........................................... 424 13.4.1 configuration registers....................................................................... 424 13.5 i/oxapic interrupt controller registers (bm:d0:f1)............................................. 429 13.5.1 pci configuration space registers........................................................ 429 13.5.2 i/oxapic direct memory space registers .............................................. 441 13.5.3 indirect memory space registers ......................................................... 442 13.6 pci express* to pci-x* bridges (bm:d0:f3) ....................................................... 445 13.6.1 configuration registers....................................................................... 445 13.7 pci express* to pci-x* bridges (bm:d0:f3) enhanced ......................................... 475 13.7.1 configuration registers....................................................................... 475 13.8 hot-plug controller registers............................................................................. 485 13.8.1 memory-mapped registers .................................................................. 485 13.8.2 offset 24h ? 40h: logical slot registers (lsr) 1 to 6 .............................. 490 14 intel ? high definition audio controller registers (d27:f0) .................................... 495 14.1 intel? high definition audio pci configuration space (high definition audio ? d27:f0) ....................................................................... 495 14.1.1 vid ? vendor identification register (high definition audio controller ? d27:f0) ........................................... 496 14.1.2 did ? device identification register (high definition audio controller ? d27:f0) ........................................... 497 14.1.3 pcicmd ? pci command register (high definition audio controller ? d27:f0) ........................................... 497 14.1.4 pcists ? pci status register (high definition audio controller ? d27:f0) ........................................... 498 14.1.5 rid ? revision identification register (high definition audio controller ? d27:f0) ........................................... 498 14.1.6 pi ? programming interface register (high definition audio controller ? d27:f0) ........................................... 498 14.1.7 scc ? sub class code register (high definition audio controller ? d27:f0) ........................................... 499 14.1.8 bcc ? base class code register (high definition audio controller ? d27:f0) ........................................... 499
intel ? 631xesb/632xesb i/o controller hub datasheet 11 14.1.9 cls ? cache line size register (high definition audio controller ? d27:f0)........................................... 499 14.1.10 lt ? latency timer register (high definition audio controller ? d27:f0)........................................... 499 14.1.11 headtyp ? header type register (high definition audio controller ? d27:f0)........................................... 499 14.1.12 azbarl ? high definition audio lower base address register (high definition audio controller ? d27:f0) .............................. 500 14.1.13 azbaru ? intel? high definition audio upper base address register (high definition audio controller ? d27:f0) .............................. 500 14.1.14 svid ? subsystem vendor identification register (high definition audio controller ? d27:f0)........................................... 500 14.1.15 sid ? subsystem identification register (high definition audio controller ? d27:f0)........................................... 500 14.1.16 capptr ? capabilities pointer register (audio ? d27:f0) ........................ 501 14.1.17 intln ? interrupt line register (high definition audio controller ? d27:f0)........................................... 501 14.1.18 intpn ? interrupt pin register (high definition audio controller ? d27:f0)........................................... 501 14.1.19 azctl ? intel? high definition audio control register (high definition audio controller ? d27:f0)........................................... 502 14.1.20 tcsel ? traffic class select register (high definition audio controller ? d27:f0)........................................... 502 14.1.21 pid ? pci power management capability id register (high definition audio controller ? d27:f0)........................................... 503 14.1.22 pc ? power management capabilities register (high definition audio controller ? d27:f0)........................................... 503 14.1.23 pcs ? power management control and status register (high definition audio controller ? d27:f0)........................................... 503 14.1.24 mid ? msi capability id register (high definition audio controller ? d27:f0)........................................... 504 14.1.25 mmc ? msi message control register (high definition audio controller ? d27:f0)........................................... 504 14.1.26 mmla ? msi message lower address register (high definition audio controller ? d27:f0)........................................... 505 14.1.27 mmua ? msi message upper address register (high definition audio controller ? d27:f0)........................................... 505 14.1.28 mmd ? msi message data register (high definition audio controller ? d27:f0)........................................... 505 14.1.29 pxid ? pci express capability id register (high definition audio controller ? d27:f0)........................................... 505 14.1.30 pxc ? pci express capabilities register (high definition audio controller ? d27:f0)........................................... 505 14.1.31 devcap ? device capabilities register (high definition audio controller ? d27:f0)........................................... 506 14.1.32 devc ? device control register (high definition audio controller ? d27:f0)........................................... 506 14.1.33 devs ? device status register (high definition audio controller ? d27:f0)........................................... 507 14.1.34 vccap ? virtual channel enhanced capability header (high definition audio controller ? d27:f0)........................................... 507 14.1.35 pvccap1 ? port vc capability register 1 (high definition audio controller ? d27:f0)........................................... 507 14.1.36 pvccap2 ? port vc capability register 2 (high definition audio controller ? d27:f0)........................................... 508 14.1.37 pvcclt ? port vc control register (high definition audio controller ? d27:f0)........................................... 508 14.1.38 pvcsts ? port vc status register (high definition audio controller ? d27:f0)........................................... 508
12 intel ? 631xesb/632xesb i/o controller hub datasheet 14.1.39 vc0cap ? vc0 resource capability register (high definition audio controller ? d27:f0) ........................................... 508 14.1.40 vc0ctl ? vc0 resource control register (high definition audio controller ? d27:f0) ........................................... 509 14.1.41 vc0sts ? vc0 resource status register (high definition audio controller ? d27:f0) ........................................... 509 14.1.42 vcicap ? vci resource capability register (high definition audio controller ? d27:f0) ........................................... 509 14.1.43 vcictl ? vci resource control register (high definition audio controller ? d27:f0) ........................................... 510 14.1.44 vcists ? vci resource status register (high definition audio controller ? d27:f0) ........................................... 510 14.1.45 rccap ? root complex link declaration enhanced capability header register (high definition audio controller ? d27:f0) ..... 510 14.1.46 esd ? element self description register (high definition audio controller ? d27:f0) ........................................... 511 14.1.47 l1desc ? link 1 description register (high definition audio controller ? d27:f0) ........................................... 511 14.1.48 l1addl ? link 1 lower address register (high definition audio controller ? d27:f0) ........................................... 511 14.1.49 l1addu ? link 1 upper address register (high definition audio controller ? d27:f0) ........................................... 511 14.2 intel? high definition audio memory mapped configuration registers (high definition audio ? d27:f0) ....................................................................... 512 14.2.1 gcap ? global capabilities register (high definition audio controller ? d27:f0) ........................................... 515 14.2.2 vmin ? minor version register (high definition audio controller ? d27:f0) ........................................... 515 14.2.3 vmaj ? major version register (high definition audio controller ? d27:f0) ........................................... 515 14.2.4 outpay ? output payload capability register (high definition audio controller ? d27:f0) ........................................... 516 14.2.5 inpay ? input payload capability register (high definition audio controller ? d27:f0) ........................................... 516 14.2.6 gctl ? global control register (high definition audio controller ? d27:f0) ........................................... 516 14.2.7 wakeen ? wake enable register (high definition audio controller ? d27:f0) ........................................... 517 14.2.8 statests ? state change status register (high definition audio controller ? d27:f0) ........................................... 518 14.2.9 gsts ? global status register (high definition audio controller ? d27:f0) ........................................... 518 14.2.10 intctl ? interrupt control register (high definition audio controller ? d27:f0) ........................................... 518 14.2.11 intsts ? interrupt status register (high definition audio controller ? d27:f0)519 14.2.12 walclk ? wall clock counter register (high definition audio controller ? d27:f0) ........................................... 520 14.2.13 ssync ? stream synchronization register (high definition audio controller ? d27:f0) ........................................... 520 14.2.14 corblbase ? corb lower base address register (high definition audio controller ? d27:f0) ........................................... 520 14.2.15 corbubase ? corb upper base address register (high definition audio controller ? d27:f0) ........................................... 521 14.2.16 corbrp ? corb read pointer register (high definition audio controller ? d27:f0) ........................................... 521 14.2.17 corbctl ? corb control register (high definition audio controller ? d27:f0) ........................................... 521
intel ? 631xesb/632xesb i/o controller hub datasheet 13 14.2.18 corbst ? corb status register (high definition audio controller ? d27:f0)........................................... 522 14.2.19 corbsize ? corb size register (high definition audio controller ? d27:f0)........................................... 522 14.2.20 rirblbase ? rirb lower base address register (high definition audio controller ? d27:f0)........................................... 522 14.2.21 rirbubase ? rirb upper base address register (high definition audio controller ? d27:f0)........................................... 522 14.2.22 rirbwp ? rirb write pointer register (high definition audio controller ? d27:f0)........................................... 523 14.2.23 rintcnt ? response interrupt count register (high definition audio controller ? d27:f0)........................................... 523 14.2.24 rirbctl ? rirb control register (high definition audio controller ? d27:f0)........................................... 524 14.2.25 rirbsts ? rirb status register (high definition audio controller ? d27:f0)........................................... 524 14.2.26 rirbsize ? rirb size register (high definition audio controller ? d27:f0)........................................... 524 14.2.27 ic ? immediate command register (high definition audio controller ? d27:f0)........................................... 525 14.2.28 ir ? immediate response register (high definition audio controller ? d27:f0)........................................... 525 14.2.29 irs ? immediate command status register (high definition audio controller ? d27:f0)........................................... 525 14.2.30 dplbase ? dma position lower base address register (high definition audio controller ? d27:f0)........................................... 526 14.2.31 dpubase ? dma position upper base address register (high definition audio controller ? d27:f0)........................................... 526 14.2.32 sdctl ? stream de scriptor control register (high definition audio controller ? d27:f0)........................................... 527 14.2.33 sdsts ? stream descriptor status register (high definition audio controller ? d27:f0)........................................... 528 14.2.34 sdlpib ? stream descriptor link position in buffer register (high definition audio controller ? d27:f0) .............................. 529 14.2.35 sdcbl ? stream descriptor cyclic buffer length register (high definition audio controller ? d27:f0)........................................... 529 14.2.36 sdlvi ? stream descriptor last valid index register (high definition audio controller ? d27:f0)........................................... 530 14.2.37 sdfifow ? stream descr iptor fifo watermark register (high definition audio controller ? d27:f0)........................................... 530 14.2.38 sdfifos ? stream descriptor fifo size register (high definition audio controller ? d27:f0)........................................... 531 14.2.39 sdfmt ? stream descriptor format register (high definition audio controller ? d27:f0)........................................... 532 14.2.40 sdbdpl ? stream descriptor buffer descriptor list pointer lower base address register (high definition audio controller ? d27:f0)........................................... 533 14.2.41 sdbdpu ? stream descriptor buffer descriptor list pointer upper base address register (high definition audio controller ? d27:f0)........................................... 533 15 pci express* configuration registers .................................................................... 535 15.1 pci express* configuration registers (pci express ? d28:f0/f1/f2/f3) ................. 535 15.1.1 vid ? vendor identification register (pci express ? d28:f0/f1/f2/f3) ........................................................ 537 15.1.2 did ? device identification register (pci express ? d28:f0/f1/f2/f3) ........................................................ 538 15.1.3 pcicmd ? pci command register (pci express ? d28:f0/f1/f2/f3) ........................................................ 538
14 intel ? 631xesb/632xesb i/o controller hub datasheet 15.1.4 pcists ? pci status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 539 15.1.5 rid ? revision identification register (pci express ? d28:f0/f1/f2/f3) ........................................................ 539 15.1.6 pi ? programming interface register (pci express ? d28:f0/f1/f2/f3) ........................................................ 540 15.1.7 scc ? sub class code register (pci express ? d28:f0/f1/f2/f3) ........................................................ 540 15.1.8 bcc ? base class code register (pci express ? d28:f0/f1/f2/f3) ........................................................ 540 15.1.9 cls ? cache line size register (pci express ? d28:f0/f1/f2/f3) ........................................................ 540 15.1.10 plt ? primary latency timer register (pci express ? d28:f0/f1/f2/f3) ........................................................ 540 15.1.11 headtyp ? header type register (pci express ? d28:f0/f1/f2/f3) ........................................................ 541 15.1.12 bnum ? bus number register (pci express ? d28:f0/f1/f2/f3) ........................................................ 541 15.1.13 iobl ? i/o base and limit register (pci express ? d28:f0/f1/f2/f3) ........................................................ 541 15.1.14 ssts ? secondary status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 542 15.1.15 mbl ? memory base and limit register (pci express ? d28:f0/f1/f2/f3) ........................................................ 542 15.1.16 pmbl ? prefetchable memory base and limit register (pci express ? d28:f0/f1/f2/f3) ........................................................ 543 15.1.17 pmbu32 ? prefetchable memory base upper 32 bits register (pci express ? d28:f0/f1/f2/f3) ............................................ 543 15.1.18 pmlu32 ? prefetchable memory limit upper 32 bits register (pci express ? d28:f0/f1/f2/f3) ............................................ 543 15.1.19 capp ? capabilities list pointer register (pci express ? d28:f0/f1/f2/f3) ........................................................ 543 15.1.20 intr ? interrupt information register (pci express ? d28:f0/f1/f2/f3) ........................................................ 544 15.1.21 bctrl ? bridge control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 544 15.1.22 clist ? capabilities list register (pci express ? d28:f0/f1/f2/f3) ........................................................ 545 15.1.23 xcap ? pci express capabilities register (pci express ? d28:f0/f1/f2/f3) ........................................................ 545 15.1.24 dcap ? device capabilities register (pci express ? d28:f0/f1/f2/f3) ........................................................ 545 15.1.25 dctl ? device control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 546 15.1.26 dsts ? device status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 547 15.1.27 lcap ? link capabilities register (pci express ? d28:f0/f1/f2/f3) ........................................................ 547 15.1.28 lctl ? link control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 548 15.1.29 lsts ? link status register (pci express ? d28:f0/f1/f2/f3) ................. 549 15.1.30 slcap ? slot capabilities register (pci express ? d28:f0/f1/f2/f3) ........................................................ 549 15.1.31 slctl ? slot control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 550 15.1.32 slsts ? slot status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 551 15.1.33 rctl ? root control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 551
intel ? 631xesb/632xesb i/o controller hub datasheet 15 15.1.34 rsts ? root status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 552 15.1.35 mid ? message signaled interrupt identifiers register (pci express ? d28:f0/f1/f2/f3) ........................................................ 552 15.1.36 mc ? message signaled interrupt message control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 552 15.1.37 ma ? message signaled interrupt message address register (pci express ? d28:f0/f1/f2/f3)............................................ 553 15.1.38 md ? message signaled interrupt message data register (pci express ? d28:f0/f1/f2/f3) ........................................................ 553 15.1.39 svcap ? subsystem vendor capability register (pci express ? d28:f0/f1/f2/f3) ........................................................ 553 15.1.40 svid ? subsystem vendor identification register (pci express ? d28:f0/f1/f2/f3) ........................................................ 553 15.1.41 pmcap ? power management capability register (pci express ? d28:f0/f1/f2/f3) ........................................................ 554 15.1.42 pmc ? pci power management capabilities register (pci express ? d28:f0/f1/f2/f3) ........................................................ 554 15.1.43 pmcs ? pci power management control and status register (pci express ? d28:f0/f1/f2/f3)............................................ 554 15.1.44 mpc ? miscellaneous port configuration register (pci express ? d28:f0/f1/f2/f3) ........................................................ 555 15.1.45 smscs ? smi/sci status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 556 15.1.46 rwc ? resume well control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 556 15.1.47 vch ? virtual channel capability header register (pci express ? d28:f0/f1/f2/f3) ........................................................ 556 15.1.48 vcap1 ? virtual channel capability 1 register (pci express ? d28:f0/f1/f2/f3) ........................................................ 557 15.1.49 vcap2 ? virtual channel capability 2 register (pci express ? d28:f0/f1/f2/f3) ........................................................ 557 15.1.50 pvc ? port virtual channel control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 557 15.1.51 pvs ? port virtual channel status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 558 15.1.52 v0cap ? virtual channel 0 resource capability register (pci express ? d28:f0/f1/f2/f3) ........................................................ 558 15.1.53 v0ctl ? virtual channel 0 resource control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 558 15.1.54 v0sts ? virtual channel 0 resource status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 559 15.1.55 v1cap ? virtual channel 1 resource capability register (pci express ? d28:f0/f1/f2/f3) ........................................................ 559 15.1.56 v1ctl ? virtual channel 1 resource control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 560 15.1.57 v1sts ? virtual channel 1 resource status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 560 15.1.58 ues ? uncorrectable error status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 560 15.1.59 uem ? uncorrectable error mask (pci express ? d28:f0/f1/f2/f3) ........................................................ 561 15.1.60 uev ? uncorrect able error severity (pci express ? d28:f0/f1/f2/f3) ........................................................ 562 15.1.61 ces ? correctable error status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 563 15.1.62 cem ? correctable error mask register (pci express ? d28:f0/f1/f2/f3) ........................................................ 563
16 intel ? 631xesb/632xesb i/o controller hub datasheet 15.1.63 aecc ? advanced error capabilities and control register (pci express ? d28:f0/f1/f2/f3) ........................................................ 563 15.1.64 res ? root error status register (pci express ? d28:f0/f1/f2/f3) ........................................................ 564 15.1.65 rctcl ? root complex topology capability list register (pci express ? d28:f0/f1/f2/f3) ........................................................ 564 15.1.66 esd ? element self description register (pci express ? d28:f0/f1/f2/f3) ........................................................ 564 15.1.67 uld ? upstream link description register (pci express ? d28:f0/f1/f2/f3) ........................................................ 565 15.1.68 ulba ? upstream link base address register (pci express ? d28:f0/f1/f2/f3) ........................................................ 565 16 uhci controllers registers .................................................................................... 567 16.1 pci configuration registers (usb ? d29:f0/f1/f2/f3) .......................................... 567 16.1.1 vid ? vendor identification register (usb ? d29:f0/f1/f2/f3) ................ 568 16.1.2 did ? device identification register (usb ? d29:f0/f1/f2/f3)................. 568 16.1.3 pcicmd ? pci command register (usb ? d29:f0/f1/f2/f3) ................... 568 16.1.4 pcists ? pci status register (usb ? d29:f0/f1/f2/f3) ......................... 569 16.1.5 rid ? revision identification register (usb ? d29:f0/f1/f2/f3) .............. 569 16.1.6 pi ? programming interface register (usb ? d29:f0/f1/f2/f3) ............... 570 16.1.7 scc ? sub class code register (usb ? d29:f0/f1/f2/f3) ....................... 570 16.1.8 bcc ? base class code register (usb ? d29:f0/f1/f2/f3) ...................... 570 16.1.9 mlt ? master latency timer register (usb ? d29:f0/f1/f2/f3) ............... 570 16.1.10 headtyp ? header type register (usb ? d29:f0/f1/f2/f3) .................... 570 16.1.11 base ? base address register (usb ? d29:f0/f1/f2/f3) ........................ 571 16.1.12 svid ? subsystem vendor identification register (usb ? d29:f0/f1/f2/f3) ................................................................... 571 16.1.13 sid ? subsystem identification register (usb ? d29:f0/f1/f2/f3)........... 572 16.1.14 int_ln ? interrupt line register (usb ? d29:f0/f1/f2/f3) ..................... 572 16.1.15 int_pn ? interrupt pin register (usb ? d29:f0/f1/f2/f3) ...................... 572 16.1.16 usb_relnum ? serial bus release number register usb ? d29:f0/f1/f2/f3) ........................................................ 572 16.1.17 usb_legkey ? usb legacy keyboard/mouse control register (usb ? d29:f0/f1/f2/f3) ....................................................... 573 16.1.18 usb_res ? usb resume enable register (usb ? d29:f0/f1/f2/f3) ......... 574 16.1.19 cwp ? core well policy register (usb ? d29:f0/f1/f2/f3) ...................... 574 16.2 usb i/o registers............................................................................................ 575 16.2.1 usbcmd ? usb command register ...................................................... 575 16.2.2 usbsts ? usb status register ............................................................ 578 16.2.3 usbintr ? usb interrupt enable register ............................................. 578 16.2.4 frnum ? frame number register ........................................................ 579 16.2.5 frbaseadd ? frame list base address register .................................... 579 16.2.6 sofmod ? start of frame modify register............................................. 580 16.2.7 portsc[0,1] ? port status and control register .................................... 580 17 ehci controller registers (d29:f7) ....................................................................... 583 17.1 usb ehci configuration registers (usb ehci ? d29:f7) ....................................................................................... 583 17.1.1 vid ? vendor identification register (usb ehci ? d29:f7) ......................................................................... 584 17.1.2 did ? device identification register (usb ehci ? d29:f7) ......................................................................... 584 17.1.3 pcicmd ? pci command register (usb ehci ? d29:f7) ......................................................................... 584 17.1.4 pcists ? pci status register (usb ehci ? d29:f7) ......................................................................... 585 17.1.5 rid ? revision identification register (usb ehci ? d29:f7) ......................................................................... 586
intel ? 631xesb/632xesb i/o controller hub datasheet 17 17.1.6 pi ? programming interface register (usb ehci ? d29:f7)......................................................................... 586 17.1.7 scc ? sub class code register (usb ehci ? d29:f7)......................................................................... 586 17.1.8 bcc ? base class code register (usb ehci ? d29:f7)......................................................................... 586 17.1.9 pmlt ? primary master latency timer register (usb ehci ? d29:f7)......................................................................... 587 17.1.10 mem_base ? memory base address register (usb ehci ? d29:f7)......................................................................... 587 17.1.11 svid ? usb ehci subsystem vendor id register (usb ehci ? d29:f7)......................................................................... 587 17.1.12 sid ? usb ehci subsystem id register (usb ehci ? d29:f7)......................................................................... 587 17.1.13 cap_ptr ? capabilities pointer register (usb ehci ? d29:f7)......................................................................... 588 17.1.14 int_ln ? interrupt line register (usb ehci ? d29:f7)......................................................................... 588 17.1.15 int_pn ? interrupt pin register (usb ehci ? d29:f7)......................................................................... 588 17.1.16 pwr_capid ? pci power management capability id register (usb ehci ? d29:f7) ............................................................ 588 17.1.17 nxt_ptr1 ? next item pointer #1 register (usb ehci ? d29:f7)......................................................................... 589 17.1.18 pwr_cap ? power management capabilities register (usb ehci ? d29:f7)......................................................................... 589 17.1.19 pwr_cntl_sts ? power management control/status register (usb ehci ? d29:f7) ............................................................ 590 17.1.20 debug_capid ? debug port capability id register (usb ehci ? d29:f7)......................................................................... 590 17.1.21 nxt_ptr2 ? next item pointer #2 register (usb ehci ? d29:f7)......................................................................... 590 17.1.22 debug_base ? debug port base offset register (usb ehci ? d29:f7)......................................................................... 591 17.1.23 usb_relnum ? usb release number register (usb ehci ? d29:f7)......................................................................... 591 17.1.24 fl_adj ? frame length adjustment register (usb ehci ? d29:f7)......................................................................... 591 17.1.25 pwake_cap ? port wake capability register (usb ehci ? d29:f7)......................................................................... 592 17.1.26 leg_ext_cap ? usb ehci legacy support extended capability register (usb ehci ? d29:f7).............................................. 593 17.1.27 leg_ext_cs ? usb ehci legacy support extended control / status register (usb ehci ? d29:f7) ..................................... 593 17.1.28 special_smi ? intel specific usb 2.0 smi register (usb ehci ? d29:f7)......................................................................... 595 17.1.29 access_cntl ? access control register (usb ehci ? d29:f7)......................................................................... 596 17.2 memory-mapped i/o registers .......................................................................... 596 17.2.1 host controller capability registers ..................................................... 596 17.2.2 host controller operational registers ................................................... 598 17.2.3 usb 2.0-based debug port register ..................................................... 609 18 pci-to-pci bridge registers (d30:f0) ................................................................... 613 18.1 pci configuration registers (d30:f0)................................................................. 613 18.1.1 vid ? vendor identification register (pci-pci ? d30:f0) ........................ 614 18.1.2 did ? device identification register (pci-pci ? d30:f0) ......................... 614 18.1.3 pcicmd ? pci command (pci-pci ? d30:f0) ........................................ 614 18.1.4 psts ? pci status register (pci-pci ? d30:f0) ..................................... 615
18 intel ? 631xesb/632xesb i/o controller hub datasheet 18.1.5 rid ? revision identification register (pci-pci ? d30:f0) ....................... 617 18.1.6 cc ? class code register (pci-pci ? d30:f0) ........................................ 617 18.1.7 pmlt ? primary master latency timer register (pci-pci ? d30:f0) ............................................................................ 617 18.1.8 headtyp ? header type register (pci-pci ? d30:f0)............................. 618 18.1.9 bnum ? bus number register (pci-pci ? d30:f0).................................. 618 18.1.10 smlt ? secondary master latency timer register (pci-pci ? d30:f0) ............................................................................ 618 18.1.11 iobase_limit ? i/o base and limit register (pci-pci ? d30:f0) ............................................................................ 619 18.1.12 secsts ? secondary status register (pci-pci ? d30:f0)........................ 619 18.1.13 membase_limit ? memory base and limit register (pci-pci ? d30:f0) ............................................................................ 620 18.1.14 pref_mem_base_limit ? prefetchable memory base and limit register (pci-pci ? d30:f0) .................................................. 620 18.1.15 pmbu32 ? prefetchable memory base upper 32 bits register (pci-pci ? d30:f0)................................................................ 621 18.1.16 pmlu32 ? prefetchable memory limit upper 32 bits register (pci-pci ? d30:f0)................................................................ 621 18.1.17 capp ? capability list pointer register (pci-pci ? d30:f0) ...................... 621 18.1.18 intr ? interrupt information register (pci-pci ? d30:f0) ...................... 621 18.1.19 bctrl ? bridge control register (pci-pci ? d30:f0) .............................. 621 18.1.20 spdh ? secondary pci device hiding register (pci-pci ? d30:f0) ............................................................................ 623 18.1.21 dtc ? delayed transaction control register (pci-pci ? d30:f0) ............................................................................ 623 18.1.22 bps ? bridge proprietary status register (pci-pci ? d30:f0) ............................................................................ 624 18.1.23 bpc ? bridge policy configuration register (pci-pci ? d30:f0) ............................................................................ 625 18.1.24 svcap ? subsystem vendor capability register (pci-pci ? d30:f0) ............................................................................ 625 18.1.25 svid ? subsystem vendor ids register (pci-pci ? d30:f0) .................... 625 19 ac?97 audio controller registers (d30:f2) ............................................................ 627 19.1 ac?97 audio pci configuration space (audio ? d30:f2)............................................................................................. 627 19.1.1 vid ? vendor identification register (audio ? d30:f2) ............................ 628 19.1.2 did ? device identification register (audio ? d30:f2) ............................ 628 19.1.3 pcicmd ? pci command register (audio ? d30:f2) ............................... 628 19.1.4 pcists ? pci status register (audio ? d30:f2) ..................................... 629 19.1.6 pi ? programming interface register (audio ? d30:f2) ........................... 630 19.1.7 scc ? sub class code register (audio ? d30:f2) ................................... 630 19.1.8 bcc ? base class code register (audio ? d30:f2).................................. 630 19.1.9 headtyp ? header type register (audio ? d30:f2)................................ 630 19.1.10 nambar ? native audio mixer base address register (audio ? d30:f2) ............................................................................... 631 19.1.11 nabmbar ? native audio bus mastering base address register (audio ? d30:f2)................................................................... 631 19.1.12 mmbar ? mixer base address register (audio ? d30:f2)......................... 632 19.1.13 mbbar ? bus master base address register (audio ? d30:f2) ............................................................................... 632 19.1.14 svid ? subsystem vendor identification register (audio ? d30:f2) ............................................................................... 633 19.1.15 sid ? subsystem identification register (audio ? d30:f2) ...................... 633 19.1.16 cap_ptr ? capabilities pointer register (audio ? d30:f2) ....................... 633 19.1.18 int_pn ? interrupt pin register (audio ? d30:f2) .................................. 634
intel ? 631xesb/632xesb i/o controller hub datasheet 19 19.1.19 pcid ? programmable codec identification register (audio ? d30:f2) .............................................................................. 634 19.1.21 pid ? pci power management capability identification register (audio ? d30:f2) .................................................................. 635 19.1.22 pc ? power management capabilities register (audio ? d30:f2) .............................................................................. 635 19.1.23 pcs ? power management control and status register (audio ? d30:f2) .............................................................................. 636 19.2 ac?97 audio i/o space (d30:f2) ....................................................................... 636 19.2.1 x_bdbar ? buffer descriptor base address register (audio ? d30:f2) .............................................................................. 639 19.2.2 x_civ ? current index value register (audio ? d30:f2) ......................... 640 19.2.3 x_lvi ? last valid index register (audio ? d30:f2) ............................... 640 19.2.6 x_piv ? prefetched index value register (audio ? d30:f2) ..................... 642 19.2.9 glob_sta ? global status register (audio ? d30:f2) ............................ 645 19.2.10 cas ? codec access semaphore register (audio ? d30:f2)..................... 647 19.2.11 sdm ? sdata_in map register (audio ? d30:f2) .................................. 647 20 ac?97 modem controller registers (d30:f3) .......................................................... 649 20.1 ac?97 modem pci configuration space (d30:f3) ................................................. 649 20.1.1 vid ? vendor identification register (modem ? d30:f3) ......................... 650 20.1.2 did ? device identification register (modem ? d30:f3).......................... 650 20.1.3 pcicmd ? pci command register (modem ? d30:f3) ............................ 650 20.1.5 rid ? revision identification register (modem ? d30:f3) ....................... 651 20.1.7 scc ? sub class code register (modem ? d30:f3) ................................ 652 20.1.8 bcc ? base class code register (modem ? d30:f3) ............................... 652 20.1.9 headtyp ? header type register (modem ? d30:f3) ............................. 652 20.1.10 mmbar ? modem mixer base address register (modem ? d30:f3) ............................................................................ 652 20.1.11 mbar ? modem base address register (modem ? d30:f3)...................... 653 20.1.12 svid ? subsystem vendor identification register (modem ? d30:f3) ............................................................................ 653 20.1.14 cap_ptr ? capabilities pointer register (modem ? d30:f3) .................... 654 20.1.15 int_ln ? interrupt line register (modem ? d30:f3) .............................. 654 20.1.16 int_pin ? interrupt pin register (modem ? d30:f3) .............................. 654 20.1.17 pid ? pci power management capability identification register (modem ? d30:f3) ................................................................ 655 20.1.18 pc ? power management capabilities register (modem ? d30:f3) ............................................................................ 655 20.1.19 pcs ? power management control and status register (modem ? d30:f3) ............................................................................ 655 20.2 ac?97 modem i/o space (d30:f3) ..................................................................... 656 20.2.1 x_bdbar ? buffer descriptor list base address register (modem ? d30:f3) ............................................................................ 658 20.2.2 x_civ ? current index value register (modem ? d30:f3)....................... 658 20.2.3 x_lvi ? last valid index register (modem ? d30:f3) ............................. 658 20.2.4 x_sr ? status register (modem ? d30:f3) ........................................... 659 20.2.5 x_picb ? position in current buffer register (modem ? d30:f3) ............................................................................ 660 20.2.6 x_piv ? prefetch index value register (modem ? d30:f3) ............................................................................ 660 20.2.7 x_cr ? control register (modem ? d30:f3) .......................................... 660 20.2.8 glob_cnt ? global control register (modem ? d30:f3) ........................ 661 20.2.9 glob_sta ? global status register (modem ? d30:f3) .......................... 662 20.2.10 cas ? codec access semaphore register (modem ? d30:f3) ............................................................................ 664 21 lpc interface bridge registers (d31:f0) ............................................................... 665
20 intel ? 631xesb/632xesb i/o controller hub datasheet 21.1 pci configuration registers (lpc i/f ? d31:f0) ................................................... 665 21.1.1 vid ? vendor identification register (lpc i/f ? d31:f0).......................... 666 21.1.2 did ? device identification register (lpc i/f ? d31:f0) .......................... 666 21.1.3 pcicmd ? pci command register (lpc i/f ? d31:f0) ............................ 666 21.1.4 pcists ? pci status register (lpc i/f ? d31:f0) ................................... 667 21.1.5 rid ? revision identification register (lpc i/f ? d31:f0) ........................ 667 21.1.6 pi ? programming interface register (lpc i/f ? d31:f0) ......................... 668 21.1.7 scc ? sub class code register (lpc i/f ? d31:f0)................................. 668 21.1.8 bcc ? base class code register (lpc i/f ? d31:f0) ............................... 668 21.1.9 plt ? primary latency timer register (lpc i/f ? d31:f0) ....................... 668 21.1.10 headtyp ? header type register (lpc i/f ? d31:f0) ............................. 668 21.1.11 ss ? sub system identifiers register (lpc i/f ? d31:f0) ........................ 668 21.1.12 pmbase ? acpi base address register (lpc i/f ? d31:f0) ...................... 669 21.1.13 acpi_cntl ? acpi control register (lpc i/f ? d31:f0)........................... 669 21.1.14 gpiobase ? gpio base address register (lpc i/f ? d31:f0)................. 670 21.1.15 gc ? gpio control register (lpc i/f ? d31:f0)...................................... 670 21.1.16 pirq[n]_rout ? pirq[a,b,c,d] routing control register (lpc i/f ? d31:f0)............................................................................. 670 21.1.17 sirq_cntl ? serial irq control register (lpc i/f ? d31:f0)............................................................................. 671 21.1.18 pirq[n]_rout ? pirq[e,f,g,h] routing control register (lpc i/f ? d31:f0)............................................................................. 671 21.1.19 lpc_i/o_dec ? i/o decode ranges register (lpc i/f ? d31:f0)............................................................................. 672 21.1.20 lpc_en ? lpc i/f enables register (lpc i/f ? d31:f0) ........................... 672 21.1.21 gen1_dec ? lpc i/f generic decode range 1 register (lpc i/f ? d31:f0)............................................................................. 673 21.1.22 gen2_dec ? lpc i/f generic decode range 2 register (lpc i/f ? d31:f0)............................................................................. 674 21.1.23 fwh_sel1 ? firmware hub select 1 register (lpc i/f ? d31:f0)............................................................................. 674 21.1.24 fwh_sel2 ? firmware hub select 2 register (lpc i/f ? d31:f0)............................................................................. 675 21.1.25 fwh_dec_en1 ? firmware hub decode enable register (lpc i/f ? d31:f0)............................................................................. 675 21.1.26 bios_cntl ? bios control register (lpc i/f ? d31:f0)............................................................................. 677 21.1.27 rcba ? root complex base address register (lpc i/f ? d31:f0)............................................................................. 677 21.2 dma i/o registers (lpc i/f ? d31:f0) ................................................................ 677 21.2.1 dmabase_ca ? dma base and current address registers (lpc i/f ? d31:f0) ............................................................... 679 21.2.2 dmabase_cc ? dma base and current count registers (lpc i/f ? d31:f0)............................................................................. 679 21.2.3 dmamem_lp ? dma memory low page registers (lpc i/f ? d31:f0)............................................................................. 680 21.2.4 dmacmd ? dma command register (lpc i/f ? d31:f0).......................... 680 21.2.5 dmasta ? dma status register (lpc i/f ? d31:f0)................................ 681 21.2.6 dma_wrsmsk ? dma write single mask register (lpc i/f ? d31:f0)............................................................................. 681 21.2.7 dmach_mode ? dma channel mode register (lpc i/f ? d31:f0)............................................................................. 682 21.2.8 dma clear byte pointer register (lpc i/f ? d31:f0) ............................... 682 21.2.9 dma master clear register (lpc i/f ? d31:f0)....................................... 683 21.2.10 dma_clmsk ? dma clear mask register (lpc i/f ? d31:f0).................... 683 21.2.11 dma_wrmsk ? dma write all mask register (lpc i/f ? d31:f0)............................................................................. 683 21.3 timer i/o registers (lpc i/f ? d31:f0) .............................................................. 683
intel ? 631xesb/632xesb i/o controller hub datasheet 21 21.3.1 tcw ? timer control word register (lpc i/f ? d31:f0).......................... 684 21.3.2 sbyte_fmt ? interval timer status byte format register (lpc i/f ? d31:f0) ............................................................................ 685 21.3.3 counter access ports register (lpc i/f ? d31:f0).................................. 686 21.4 8259 interrupt controller (pic) registers (lpc i/f ? d31:f0) .......................................................................................... 686 21.4.1 interrupt controller i/o map (lpc i/f ? d31:f0) .................................... 686 21.4.2 icw1 ? initialization command word 1 register (lpc i/f ? d31:f0) ............................................................................ 687 21.4.3 icw2 ? initialization command word 2 register (lpc i/f ? d31:f0) ............................................................................ 688 21.4.4 icw3 ? master controller initialization command word 3 register (lpc i/f ? d31:f0) ..................................................... 688 21.4.5 icw3 ? slave controller initialization command word 3 register (lpc i/f ? d31:f0) ..................................................... 689 21.4.6 icw4 ? initialization command word 4 register (lpc i/f ? d31:f0) ............................................................................ 689 21.4.7 ocw1 ? operational control word 1 (interrupt mask) register (lpc i/f ? d31:f0) ................................................................ 689 21.4.8 ocw2 ? operational control word 2 register (lpc i/f ? d31:f0) ............................................................................ 690 21.4.9 ocw3 ? operational control word 3 register (lpc i/f ? d31:f0) ............................................................................ 690 21.4.10 elcr1 ? master controller edge/level triggered register (lpc i/f ? d31:f0) ............................................................................ 691 21.4.11 elcr2 ? slave controller edge/level triggered register (lpc i/f ? d31:f0) ............................................................................ 692 21.5 advanced programmable interrupt controller (apic)(d31:f0) ............................... 692 21.5.1 apic register map (lpc i/f ? d31:f0).................................................. 692 21.5.2 ind ? index register (lpc i/f ? d31:f0) .............................................. 693 21.5.3 dat ? window register (lpc i/f ? d31:f0)........................................... 693 21.5.4 eoir ? eoi register (lpc i/f ? d31:f0) ............................................... 693 21.5.5 id ? identification register (lpc i/f ? d31:f0) ...................................... 694 21.5.6 ver ? version register (lpc i/f ? d31:f0) ........................................... 694 21.5.7 redir_tbl ? redirection table (lpc i/f ? d31:f0) ................................ 695 21.6 real time clock registers (lpc i/f ? d31:f0) ..................................................... 696 21.6.1 i/o register address map (lpc i/f ? d31:f0)........................................ 696 21.6.2 indexed registers (lpc i/f ? d31:f0) .................................................. 697 21.7 processor interface registers (lpc i/f ? d31:f0) ................................................ 700 21.7.1 nmi_sc ? nmi status and control register (lpc i/f ? d31:f0) ............................................................................ 700 21.7.2 nmi_en ? nmi enable (and real time clock index) register (lpc i/f ? d31:f0) ................................................................ 701 21.7.3 port92 ? fast a20 and init register (lpc i/f ? d31:f0) ........................ 701 21.7.4 coproc_err ? coprocessor error register (lpc i/f ? d31:f0) ............................................................................ 702 21.7.5 rst_cnt ? reset control register (lpc i/f ? d31:f0)............................ 702 21.8 power management registers (pm ? d31:f0) ...................................................... 702 21.8.1 power management pci configuration registers (pm ? d31:f0) .................................................................................. 702 21.8.2 power management i/o registers ........................................................ 708 21.9 system management tco registers (d31:f0) ..................................................... 722 21.9.1 tco register i/o map ........................................................................ 722 21.9.2 tco_rld ? tco timer reload and current value register ...................... 723 21.9.3 tco_dat_in ? tco data in register ................................................... 723 21.9.4 tco_dat_out ? tco data out register............................................... 723 21.9.5 tco1_sts ? tco1 status register....................................................... 723 21.9.6 tco2_sts ? tco2 status register....................................................... 725
22 intel ? 631xesb/632xesb i/o controller hub datasheet 21.9.7 tco1_cnt ? tco1 control register...................................................... 726 21.9.8 tco2_cnt ? tco2 control register...................................................... 727 21.9.9 tco_message1 and tco_message2 registers..................................... 727 21.9.10 tco_wdcnt ? tco watchdog control register...................................... 727 21.9.11 sw_irq_gen ? software irq generation register ................................. 728 21.9.12 tco_tmr ? tco timer initial value register ......................................... 728 21.10 general purpose i/o registers (d31:f0) ............................................................. 728 21.10.1 gpio register i/o address map ........................................................... 728 21.10.2 gpio_use_sel ? gpio use select register ........................................... 729 21.10.3 gp_io_sel ? gpio input/output select register.................................... 729 21.10.4 gp_lvl ? gpio level for input or output register .................................. 730 21.10.5 gpo_blink ? gpo blink enable register ............................................... 731 21.10.6 gpi_inv ? gpio signal invert register ................................................. 731 21.10.7 gpio_use_sel2 ? gpio use select 2 register[63:32] ............................ 732 21.10.8 gp_io_sel2 ? gpio input/output select 2 register[63:32] .................... 733 21.10.9 gp_lvl2 ? gpio level for input or output 2 register[63:32]................... 733 22 ide controller registers (d31:f1) .......................................................................... 735 22.1 pci configuration registers (ide ? d31:f1) ........................................................ 735 22.1.1 vid ? vendor identification register (ide ? d31:f1)............................... 736 22.1.2 did ? device identification register (ide ? d31:f1) ............................... 736 22.1.3 pcicmd ? pci command register (ide ? d31:f1) .................................. 736 22.1.4 pcists ? pci status register (ide ? d31:f1) ........................................ 737 22.1.5 rid ? revision identification register (ide ? d31:f1) ............................. 737 22.1.6 pi ? programming interface register (ide ? d31:f1) .............................. 737 22.1.7 scc ? sub class code register (ide ? d31:f1)...................................... 738 22.1.8 bcc ? base class code register (ide ? d31:f1) .................................... 738 22.1.9 cls ? cache line size register (ide ? d31:f1)...................................... 738 22.1.10 pmlt ? primary master latency timer register (ide ? d31:f1).................................................................................. 738 22.1.11 pcmd_bar ? primary command block base address register (ide ? d31:f1) ..................................................................... 739 22.1.12 pcnl_bar ? primary control block base address register (ide ? d31:f1) ..................................................................... 739 22.1.13 scmd_bar ? secondary command block base address register (ide d31:f1) ........................................................................ 739 22.1.14 scnl_bar ? secondary control block base address register (ide d31:f1) ........................................................................ 739 22.1.15 bm_base ? bus master base address register (ide ? d31:f1).................................................................................. 740 22.1.16 ide_svid ? subsystem vendor identification (ide ? d31:f1).................................................................................. 740 22.1.17 ide_sid ? subsystem identification register (ide ? d31:f1).................................................................................. 740 22.1.18 intr_ln ? interrupt line register (ide ? d31:f1) ................................. 741 22.1.19 intr_pn ? interrupt pin register (ide ? d31:f1) ................................... 741 22.1.20 ide_timp ? ide primary timing register (ide ? d31:f1) ........................ 741 22.1.21 ide_tims ? ide secondary timing register (ide ? d31:f1).................................................................................. 742 22.1.22 slv_idetim ? slave (drive 1) ide timing register (ide ? d31:f1).................................................................................. 743 22.1.23 sdma_cnt ? synchronous dma control register (ide ? d31:f1).................................................................................. 743 22.1.24 sdma_tim ? synchronous dma timing register (ide ? d31:f1).................................................................................. 743 22.1.25 ide_config ? ide i/o configuration register (ide ? d31:f1).................................................................................. 744 22.1.26 atc ? apm trapping control register (ide ? d31:f1) ............................. 745
intel ? 631xesb/632xesb i/o controller hub datasheet 23 22.1.27 ats ? apm trapping register (ide ? d31:f1) ........................................ 745 22.2 bus master ide i/o registers (ide ? d31:f1) ..................................................... 745 22.2.1 bmicp ? bus master ide command register (ide ? d31:f1) ................................................................................. 746 22.2.2 bmisp ? bus master ide status register (ide ? d31:f1) ........................ 747 22.2.3 bmidp ? bus master ide descriptor table pointer register (ide ? d31:f1) ................................................................................. 747 23 sata controller registers (d31:f2) ....................................................................... 749 23.1 pci configuration registers (sata?d31:f2)........................................................ 749 23.1.1 vid ? vendor identification register (sata ? d31:f2) ............................ 750 23.1.2 did ? device identification register (sata ? d31:f2) ............................ 750 23.1.3 pcicmd ? pci command register (sata?d31:f2) ................................. 751 23.1.4 pcists ? pci status register (sata?d31:f2) ....................................... 751 23.1.5 rid ? revision identification register (sata ? d31:f2) .......................... 752 23.1.6 pi ? programming interface register (sata?d31:f2) ............................. 752 23.1.7 scc ? sub class code register (sata?d31:f2)..................................... 753 23.1.8 bcc ? base class code register (sata?d31:f2) ................................................................................. 754 23.1.9 pmlt ? primary master latency timer register (sata?d31:f2) ................................................................................. 754 23.1.10 pcmd_bar ? primary command block base address register (sata?d31:f2)..................................................................... 754 23.1.11 pcnl_bar ? primary control block base address register (sata?d31:f2) ................................................................................. 754 23.1.12 scmd_bar ? secondary command block base address register (ide d31:f1)........................................................................ 755 23.1.13 scnl_bar ? secondary control block base address register (ide d31:f1)........................................................................ 755 23.1.14 bar ? legacy bus master base address register (sata?d31:f2) ................................................................................. 755 23.1.15 abar ? ahci base address register (sata?d31:f2) ................................................................................. 756 23.1.16 svid ? subsystem vendor identification register (sata?d31:f2) ................................................................................. 756 23.1.17 sid ? subsystem identification register (sata?d31:f2) ........................ 756 23.1.18 cap ? capabilities pointer register (sata?d31:f2) ................................ 756 23.1.19 int_ln ? interrupt line register (sata?d31:f2) .................................. 756 23.1.20 int_pn ? interrupt pin register (sata?d31:f2) .................................... 757 23.1.21 ide_tim ? ide timing register (sata?d31:f2)..................................... 757 23.1.22 sidetim ? slave ide timing register (sata?d31:f2) ............................ 758 23.1.23 sdma_cnt ? synchronous dma control register (sata?d31:f2) ................................................................................. 759 23.1.24 sdma_tim ? synchronous dma timing register (sata?d31:f2) ................................................................................. 759 23.1.25 ide_config ? ide i/o configuration register (sata?d31:f2) ................................................................................. 760 23.1.26 pid ? pci power management capability identification register (sata?d31:f2)..................................................................... 760 23.1.27 pc ? pci power management capabilities register (sata?d31:f2) ................................................................................. 761 23.1.28 pmcs ? pci power management control and status register (sata?d31:f2)..................................................................... 761 23.1.29 mid ? message signaled interrupt identifiers register (sata?d31:f2) ................................................................................. 761 23.1.30 mc ? message signaled interrupt message control register (sata?d31:f2)..................................................................... 762 23.1.31 ma ? message signaled interrupt message address register (sata?d31:f2)..................................................................... 762
24 intel ? 631xesb/632xesb i/o controller hub datasheet 23.1.32 md ? message signaled interrupt message data register (sata?d31:f2) ................................................................................. 762 23.1.33 map ? port mapping register (sata?d31:f2) ........................................ 763 23.1.34 pcs ? port control and status register (sata?d31:f2) .......................... 763 23.1.35 satacr0 ? capability register 0 (sata?d31:f2) ................................... 764 23.1.36 satacr1 ? capability register 1 (sata?d31:f2) ................................... 765 23.1.37 atc ? apm trapping control register (sata?d31:f2) ............................. 765 23.1.38 ats ? apm trapping status register (sata?d31:f2) .............................. 765 23.1.39 sp scratch pad register (sata?d31:f2) ............................................... 766 23.1.40 bfcs ? bist fis control/status register (sata?d31:f2)........................ 766 23.1.41 bftd1 ? bist fis transmit data1 register (sata?d31:f2)..................... 767 23.1.42 bftd2 ? bist fis transmit data2 register (sata?d31:f2)..................... 767 23.2 bus master ide i/o registers (d31:f2)............................................................... 768 23.2.1 bmic[p,s] ? bus master ide command register (d31:f2) ....................... 768 23.2.2 bmis[p,s] ? bus master ide status register (d31:f2) ............................ 769 23.2.3 bmid[p,s] ? bus master ide descriptor table pointer register (d31:f2) .............................................................................. 770 23.2.4 bmindex[p,s] ? bus master indirect ahci index register register (d31:f2) .............................................................................. 770 23.2.5 bmdata[p,s] ? bus master indirect ahci data register register (d31:f2) .............................................................................. 770 23.3 ahci registers (d31:f2) .................................................................................. 771 23.3.1 ahci generic host control registers (d31:f2) ....................................... 771 23.3.2 port registers (d31:f2) ...................................................................... 775 24 smbus controller registers (d31:f3) ..................................................................... 789 24.1 pci configuration registers (smbus ? d31:f3) ................................................... 789 24.1.1 vid ? vendor identification register (smbus ? d31:f3).......................... 789 24.1.2 did ? device identification register (smbus ? d31:f3) .......................... 789 24.1.3 pcicmd ? pci command register (smbus ? d31:f3) ............................. 790 24.1.4 pcists ? pci status register (smbus ? d31:f3) ................................... 790 24.1.5 rid ? revision identification register (smbus ? d31:f3) ........................ 791 24.1.6 pi ? programming interface register (smbus ? d31:f3) ......................... 791 24.1.7 scc ? sub class code register (smbus ? d31:f3)................................. 791 24.1.8 bcc ? base class code register (smbus ? d31:f3) ............................... 791 24.1.10 svid ? subsystem vendor identification register (smbus ? d31:f2/f4) ........................................................................ 792 24.1.11 sid ? subsystem identification register (smbus ? d31:f2/f4) ........................................................................ 792 24.1.12 int_ln ? interrupt line register (smbus ? d31:f3) .............................. 792 24.1.13 int_pn ? interrupt pin register (smbus ? d31:f3)................................ 793 24.1.14 hostc ? host configuration register (smbus ? d31:f3) ........................ 793 24.2 smbus i/o registers ........................................................................................ 793 24.2.1 hst_sts ? host status register (smbus ? d31:f3) ............................... 794 24.2.2 hst_cnt ? host control register (smbus ? d31:f3) ............................. 795 24.2.3 hst_cmd ? host command register (smbus ? d31:f3)......................... 796 24.2.4 xmit_slva ? transmit slave address register (smbus ? d31:f3)............................................................................. 797 24.2.5 hst_d0 ? host data 0 register (smbus ? d31:f3) ................................ 797 24.2.6 hst_d1 ? host data 1 register (smbus ? d31:f3) ................................ 797 24.2.7 host_block_db ? host block data byte register (smbus ? d31:f3)............................................................................. 798 24.2.8 pec ? packet error check (pec) register (smbus ? d31:f3)............................................................................. 798 24.2.9 rcv_slva ? receive slave address register (smbus ? d31:f3)............................................................................. 798 24.2.10 slv_data ? receive slave data register (smbus ? d31:f3)................... 799 24.2.11 aux_sts ? auxiliary status register (smbus ? d31:f3) ......................... 799
intel ? 631xesb/632xesb i/o controller hub datasheet 25 24.2.12 aux_ctl ? auxiliary control register (smbus ? d31:f3)........................ 799 24.2.13 smlink_pin_ctl ? smlink pin control register (smbus ? d31:f3) ............................................................................ 800 24.2.14 smbus_pin_ctl ? smbus pin control register (smbus ? d31:f3) ............................................................................ 800 24.2.15 slv_sts ? slave status register (smbus ? d31:f3) ............................. 801 24.2.16 slv_cmd ? slave command register (smbus ? d31:f3) ....................... 801 24.2.17 notify_daddr ? notify device address register (smbus ? d31:f3) ............................................................................ 802 24.2.18 notify_dlow ? notify data low byte register (smbus ? d31:f3) ............................................................................ 802 24.2.19 notify_dhigh ? notify data high byte register (smbus ? d31:f3) ............................................................................ 802 25 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) ........................... 803 25.1 lan controller registers (bn:f0/f1) .................................................................. 803 25.1.1 vid ? vendor identification register (bn:f0/f1) .................................... 805 25.1.2 did ? device identification register (bn:f0/f1)..................................... 805 25.1.3 pcicmd ? pci command register (bn:f0/f1)........................................ 806 25.1.4 pcists ? pci status register (bn:f0/f1).............................................. 806 25.1.5 rid ? revision identification register (bn:f0/f1)................................... 807 25.1.6 pi ? programming interface register (bn:f2) ........................................ 807 25.1.7 scc ? sub class code register (bn:f0/f1) ........................................... 807 25.1.8 bcc ? base class code register (bn:f0/f1) .......................................... 807 25.1.9 cls ? cache line size register (bn:f0/f1) ........................................... 808 25.1.10 pmlt ? primary master latency timer register (bn:f0/f1)...................... 808 25.1.11 headtyp ? header type register (bn:f0/f1) ........................................ 808 25.1.12 base address registers (bn:f0/f1) ...................................................... 808 25.1.13 svid ? subsystem vendor identification(bn:f0/f1)................................ 809 25.1.14 sid ? subsystem identification (bn:f0/f1) ........................................... 810 25.1.15 csr_exp_rom_base ? csr expansion rom base address ..................... 810 25.1.16 cap_ptr ? capabilities pointer (bn:f0/f1)............................................ 810 25.1.17 int_ln ? interrupt line register (bn:f0/f1) ......................................... 810 25.1.18 int_pn ? interrupt pin register (bn:f0/f1) .......................................... 811 25.1.19 min_gnt ? minimum grant register (bn:f0/f1) .................................... 811 25.1.20 max_lat ? maximum latency register (bn:f0/f1) ................................ 811 25.1.21 cap_id ? capability identification register (bn:f0/f1) ........................... 811 25.1.22 nxt_ptr ? next item pointer (bn:f0/f1) ............................................. 811 25.1.23 pm_cap ? power management capabilities (bn:f0/f1)............................ 812 25.1.24 pmcsr ? power management control status register (bn:f0/f1)............. 812 25.1.25 pcidata ? pci power management data register (bn:f0/f1).................. 813 25.1.26 msi_cap_id ? capability identification register (bn:f0/f1) .................... 813 25.1.27 msi_nxt_ptr ? next item pointer (bn:f0/f1) ...................................... 813 25.1.28 msi_mcr ? message control register (bn:f0/f1) .................................. 814 25.1.29 msi_mar_low ? message address low register (bn:f0/f1) ................... 814 25.1.30 msi_mar_high ? message address high register (bn:f0/f1) ................. 814 25.1.31 msi_mdr ? message data register (bn:f0/f1)...................................... 814 25.1.32 pci express_cap_id ? pci express* capability identification register (bn:f0/f1) ........................................................ 815 25.1.33 pci express_nxt_ptr ? pci express* next item pointer (bn:f0/f1) ........ 815 25.1.34 pci express_cap ? pci express* capability register (bn:f0/f1) .............. 815 25.1.35 pci express_dev_cap ? pci express* device capability register (bn:f0/f1) ............................................................ 815 25.1.36 pci express_dev_cont ? pci express* device control register (bn:f0/f1) ................................................................ 816 25.1.37 pci express_dev_status ? pci express* device status register (bn:f0/f1) ................................................................. 816
26 intel ? 631xesb/632xesb i/o controller hub datasheet 25.1.38 pci express_link_cap ? pci express* link capability register (bn:f0/f1) ............................................................. 817 25.1.39 pci express_link_cont ? pci express* link control register (bn:f0/f1) ................................................................ 817 25.1.40 pci express_link_status ? pci express* link status register (bn:f0/f1).................................................................. 818 25.1.41 crid implementation ......................................................................... 818 25.1.42 pci express* extended configuration registers...................................... 819 25.2 ide redirection controller configuration registers (bn:f2) .................................... 822 25.2.1 vid ? vendor identification register (bn:f0/f1)..................................... 823 25.2.2 did ? device identification register (bn:f2).......................................... 824 25.2.3 pcicmd ? pci command register (bn:f2)............................................. 824 25.2.4 pcists ? pci status register (bn:f2)................................................... 825 25.2.5 rid ? revision identification register (bn:f2)........................................ 826 25.2.6 pi ? programming interface register (bn:f2)......................................... 826 25.2.7 scc ? sub class code register (bn:f2) ................................................ 826 25.2.8 bcc ? base class code register (bn:f2) ............................................... 826 25.2.9 cls ? cache line size register (bn:f2) ................................................ 826 25.2.10 pmlt ? primary master latency timer register (bn:f2)........................... 826 25.2.11 headtyp ? header type register (bn:f2) ............................................. 827 25.2.12 base address registers (bn:f2) ........................................................... 827 25.2.13 svid ? subsystem vendor identification(bn:f2)..................................... 829 25.2.14 sid ? subsystem identification (bn:f2) ................................................ 829 25.2.15 csr_exp_rom_base ? csr expansion rom base address...................... 829 25.2.16 cap_ptr ? capabilities pointer (bn:f2)................................................. 829 25.2.17 int_ln ? interrupt line register (bn:f2) .............................................. 830 25.2.18 int_pn ? interrupt pin register (bn:f2) ............................................... 830 25.2.19 min_gnt ? minimum grant register (bn:f2) ......................................... 830 25.2.20 max_lat ? maximum latency register (bn:f2) ..................................... 830 25.2.21 cap_id ? capability identification register (bn:f2) ................................ 830 25.2.22 nxt_ptr ? next item pointer (bn:f2) .................................................. 830 25.2.23 pm_cap ? power management capabilities (bn:f2)................................. 831 25.2.24 pmcsr ? power management control/status register bn:f2)................... 831 25.2.25 pcidata ? pci power management data register (bn:f2)....................... 832 25.2.26 msi_cap_id ? capability identification register (bn:f2) ......................... 832 25.2.27 msi_nxt_ptr ? next item pointer (bn:f2) ........................................... 832 25.2.28 msi_mcr ? message control register (bn:f2) ....................................... 832 25.2.29 msi_mar_low ? message address low register (bn:f2) ........................ 833 25.2.30 msi_mar_high ? message address high register (bn:f2) ...................... 833 25.2.31 msi_mdr ? message data register (bn:f2)........................................... 833 25.2.32 pci express_cap_id ? pci express* capability identification register (bn:f2) ............................................................. 833 25.2.33 pci express_nxt_ptr ? pci express* next item pointer (bn:f2) ............. 834 25.2.34 pci express_cap ? pci express* capability register (bn:f2) ................... 834 25.2.35 pci express_dev_cap ? pci express* device capability register (bn:f2) ................................................................. 834 25.2.36 pci express_dev_cont ? pci express* device control register (bn:f2) ..................................................................... 835 25.2.37 pci express_dev_status ? pci express* device status register (bn:f2) ...................................................................... 835 25.2.38 pci express_link_cap ? pci express* link capability register (bn:f2) ................................................................. 836 25.2.39 pci express_link_cont ? pci express* link control register (bn:f2) ..................................................................... 836 25.2.40 pci express_link_status ? pci express* link status register (bn:f2) ...................................................................... 837 25.3 serial port redirection controller configuration registers (bn:f3) .......................... 837
intel ? 631xesb/632xesb i/o controller hub datasheet 27 25.3.1 did ? device identification register (bn:f3) ......................................... 839 25.3.2 pcicmd ? pci command register (bn:f3) ............................................ 839 25.3.3 pcists ? pci status register (bn:f3) .................................................. 840 25.3.4 rid ? revision identification register (bn:f3) ....................................... 841 25.3.5 pi ? programming interface register (bn:f3) ........................................ 841 25.3.6 scc ? sub class code register (bn:f3) ................................................ 841 25.3.7 bcc ? base class code register (bn:f3)............................................... 841 25.3.8 cls ? cache line size register (bn:f3) ................................................ 842 25.3.9 pmlt ? primary master latency timer register (bn:f3) .......................... 842 25.3.10 headtyp ? header type register (bn:f3)............................................. 842 25.3.11 base address registers (bn:f3)........................................................... 842 25.3.12 svid ? subsystem vendor identification (bn:f3) ................................... 844 25.3.13 sid ? subsystem identification (bn:f3)................................................ 844 25.3.14 cap_ptr ? capabilities pointer (bn:f3) ................................................ 844 25.3.15 int_ln ? interrupt line register (bn:f3).............................................. 845 25.3.16 int_pn ? interrupt pin register (bn:f3) ............................................... 845 25.3.17 min_gnt ? minimum grant register (bn:f0/f1) .................................... 845 25.3.18 max_lat ? maximum latency register (bn:f0/f1) ................................ 845 25.3.19 cap_id ? capability identification register (bn:f3)................................ 845 25.3.20 nxt_ptr ? next item pointer (bn:f3) .................................................. 845 25.3.21 pm_cap ? power management capabilities (bn:f3) ................................ 846 25.3.22 pmcsr ? power management control/status register (bn:f3) ............................................................................................ 846 25.3.23 pcidata ? pci power management data register (bn:f3) ...................... 847 25.3.24 msi_cap_id ? capability identification register (bn:f3)......................... 847 25.3.25 msi_nxt_ptr ? next item pointer (bn:f3) ........................................... 847 25.3.26 msi_mcr ? message control register (bn:f3) ....................................... 847 25.3.27 msi_mar_low ? message address low register (bn:f3) ....................... 848 25.3.28 msi_mar_high ? message address high register (bn:f3)...................... 848 25.3.29 msi_mdr ? message data register (bn:f3) .......................................... 848 25.3.30 pci express_cap_id ? pci express* capability identification register (bn:f3) ............................................................ 848 25.3.31 pci express_nxt_ptr ? pci express* next item pointer (bn:f3)............. 849 25.3.32 pci express_cap ? pci express* capability register (bn:f3)................... 849 25.3.33 pci express_dev_cap ? pci express* device capability register (bn:f3) ................................................................. 849 25.3.34 pci express_dev_cont ? pci express* device control register (bn:f3)..................................................................... 850 25.3.35 pci express_dev_status ? pci express* device status register (bn:f3)...................................................................... 850 25.3.36 pci express_link_cap ? pci express* link capability register (bn:f3) ................................................................. 851 25.3.37 pci express_link_cont ? pci express* link control register (bn:f3)..................................................................... 851 25.3.38 pci express_link_status ? pci express* link status register (bn:f3)...................................................................... 852 25.4 ipmi/kcs0 controller configuration registers (bn:f4) .......................................... 852 25.4.1 vid ? vendor identification register (bn:f0/f1) .................................... 853 25.4.2 did ? device identification register (bn:f4) ......................................... 854 25.4.3 pcicmd ? pci command register (bn:f4) ............................................ 854 25.4.4 pcists ? pci status register (bn:f4) .................................................. 854 25.4.5 rid ? revision identification register (bn:f4) ....................................... 855 25.4.6 pi ? programming interface register (bn:f4) ........................................ 856 25.4.7 scc ? sub class code register (bn:f4) ................................................ 856 25.4.8 bcc ? base class code register (bn:f4)............................................... 856 25.4.9 cls ? cache line size register (bn:f4) ................................................ 856 25.4.10 pmlt ? primary master latency timer register (bn:f4) .......................... 856
28 intel ? 631xesb/632xesb i/o controller hub datasheet 25.4.11 headtyp ? header type register (bn:f4) ............................................. 856 25.4.12 base address registers (bn:f4) ........................................................... 857 25.4.13 svid ? subsystem vendor identification(bn:f4)..................................... 859 25.4.14 sid ? subsystem identification (bn:f4) ................................................ 859 25.4.15 cap_ptr ? capabilities pointer (bn:f4)................................................. 859 25.4.16 int_ln ? interrupt line register (bn:f4) .............................................. 859 25.4.17 int_pn ? interrupt pin register (bn:f4) ............................................... 859 25.4.18 min_gnt ? minimum grant register (bn:f4) ......................................... 860 25.4.19 max_lat ? maximum latency register (bn:f4) ..................................... 860 25.4.20 cap_id ? capability identification register (bn:f4) ................................ 860 25.4.21 nxt_ptr ? next item pointer (bn:f4) .................................................. 860 25.4.22 pm_cap ? power management capabilities (bn:f4)................................. 860 25.4.23 pmcsr ? power management control/status register (bn:f4) ............................................................................................ 861 25.4.24 pcidata ? pci power management data register (bn:f4)....................... 861 25.4.25 msi_cap_id ? capability identification register (bn:f4) ......................... 862 25.4.26 msi_nxt_ptr ? next item pointer (bn:f4) ........................................... 862 25.4.27 msi_mcr ? message control register (bn:f4) ....................................... 862 25.4.28 msi_mar_low ? message address low register (bn:f4) ........................ 862 25.4.29 msi_mar_high ? message address high register (bn:f4) ...................... 863 25.4.30 msi_mdr ? message data register (bn:f4)........................................... 863 25.4.31 pci express_cap_id ? pci express* capability identification register (bn:f4) ............................................................. 863 25.4.32 pci express_nxt_ptr ? pci express* next item pointer (bn:f4) ............. 863 25.4.33 pci express_cap ? pci express* capability register (bn:f4) ................... 863 25.4.34 pci express_dev_cap ? pci express* device capability register (bn:f4) ................................................................. 864 25.4.35 pci express_dev_cont ? pci express* device control register (bn:f4) ..................................................................... 864 25.4.36 pci express_dev_status ? pci express* device status register (bn:f4) ...................................................................... 865 25.4.37 pci express_link_cap ? pci express* link capability register (bn:f4) ................................................................. 865 25.4.38 pci express_link_cont ? pci express* link control register (bn:f4) ..................................................................... 866 25.4.39 pci express_link_status ? pci express* link status register (bn:f4) ...................................................................... 866 25.5 uhci redirection controller configuration registers (bn:f5).................................. 867 25.5.1 vid ? vendor identification register (bn:f0/f1)..................................... 868 25.5.2 did ? device identification register (bn:f5).......................................... 868 25.5.3 pcicmd ? pci command register (bn:f5)............................................. 869 25.5.4 pcists ? pci status register (bn:f5)................................................... 869 25.5.5 rid ? revision identification register (bn:f5)........................................ 870 25.5.6 pi ? programming interface register (bn:f5)......................................... 871 25.5.7 scc ? sub class code register (bn:f5) ................................................ 871 25.5.8 bcc ? base-class code register (bn:f5)............................................... 871 25.5.9 cls ? cache line size register (bn:f5) ................................................ 871 25.5.10 pmlt ? primary master latency timer register (bn:f5)........................... 871 25.5.11 headtyp ? header type register (bn:f5) ............................................. 871 25.5.12 base address registers (bn:f5) ........................................................... 872 25.5.13 svid ? subsystem vendor identification(bn:f5)..................................... 873 25.5.14 sid ? subsystem identification (bn:f5) ................................................ 874 25.5.15 cap_ptr ? capabilities pointer (bn:f5)................................................. 874 25.5.16 int_ln ? interrupt line register (bn:f5) .............................................. 874 25.5.17 int_pn ? interrupt pin register (bn:f5) ............................................... 874 25.5.18 min_gnt ? minimum grant register (bn:f5) ......................................... 874 25.5.19 max_lat ? maximum latency register (bn:f5) ..................................... 874
intel ? 631xesb/632xesb i/o controller hub datasheet 29 25.5.20 usb_relnum ? usb release number (bn:f5) ....................................... 875 25.5.21 usb_legsup ? usb interrupt mechanism(bn:f5) .................................. 875 25.5.22 cap_id ? capability identification register (bn:f5)................................ 875 25.5.23 nxt_ptr ? next item pointer (bn:f5) .................................................. 875 25.5.24 pm_cap ? power management capabilities (bn:f5) ................................ 876 25.5.25 pmcsr ? power management control/status register (bn:f5) ............................................................................................ 876 25.5.26 pcidata ? pci power management data register (bn:f5) ...................... 877 25.5.27 msi_cap_id ? capability identification register (bn:f5)......................... 877 25.5.28 msi_nxt_ptr ? next item pointer (bn:f5) ........................................... 877 25.5.29 msi_mcr ? message control register (bn:f5) ....................................... 877 25.5.30 msi_mar_low ? message address low register (bn:f5) ....................... 878 25.5.31 msi_mar_high ? message address high register (bn:f5)...................... 878 25.5.32 msi_mdr ? message data register (bn:f5) .......................................... 878 25.5.33 pci express_cap_id ? pci express* capability identification register (bn:f5) ............................................................ 878 25.5.34 pci express_nxt_ptr ? pci express* next item pointer (bn:f5)............. 879 25.5.35 pci express_cap ? pci express* capability register (bn:f5)................... 879 25.5.36 pci express_dev_cap ? pci express* device capability register (bn:f5) ................................................................. 879 25.5.37 pci express_dev_cont ? pci express* device control register (bn:f5)..................................................................... 880 25.5.38 pci express_dev_status ? pci express* device status register (bn:f5)...................................................................... 880 25.5.39 pci express_link_cap ? pci express* link capability register (bn:f5) ................................................................. 881 25.5.40 pci express_link_cont ? pci express* link control register (bn:f5)..................................................................... 881 25.5.41 pci express_link_status ? pci express* link status register (bn:f5)...................................................................... 882 25.6 bt controller configuration registers (bn:f7) ..................................................... 882 25.6.1 vid ? vendor identification register (bn:f0/f1) .................................... 883 25.6.2 did ? device identification register (bn:f7) ......................................... 884 25.6.3 pcicmd ? pci command register (bn:f7) ............................................ 884 25.6.4 pcists ? pci status register (bn:f7) .................................................. 885 25.6.5 rid ? revision identification register (bn:f7) ....................................... 886 25.6.6 pi ? programming interface register (bn:f7) ........................................ 886 25.6.7 scc ? sub class code register (bn:f7) ................................................ 886 25.6.8 bcc ? base-class code register (bn:f7) .............................................. 886 25.6.9 cls ? cache line size register (bn:f7) ................................................ 886 25.6.10 pmlt ? primary master latency timer register (bn:f7) .......................... 886 25.6.11 headtyp ? header type register (bn:f7)............................................. 887 25.6.12 base address registers (bn:f7)........................................................... 887 25.6.13 svid ? subsystem vendor identification(bn:f7) .................................... 889 25.6.14 sid ? subsystem identification (bn:f7)................................................ 889 25.6.15 cap_ptr ? capabilities pointer (bn:f7) ................................................ 889 25.6.16 int_ln ? interrupt line register (bn:f7).............................................. 889 25.6.17 int_pn ? interrupt pin register (bn:f7) ............................................... 889 25.6.18 min_gnt ? minimum grant register (bn:f7) ........................................ 890 25.6.19 max_lat ? maximum latency register (bn:f7) ..................................... 890 25.6.20 cap_id ? capability identification register (bn:f7)................................ 890 25.6.21 nxt_ptr ? next item pointer (bn:f7) .................................................. 890 25.6.22 pm_cap ? power management capabilities (bn:f7) ................................ 890 25.6.23 pmcsr ? power management control/status register (bn:f7) ................. 891 25.6.24 pcidata ? pci power management data register (bn:f7) ...................... 891 25.6.25 msi_cap_id ? capability identification register (bn:f7)......................... 892 25.6.26 msi_nxt_ptr ? next item pointer (bn:f7) ........................................... 892
30 intel ? 631xesb/632xesb i/o controller hub datasheet 25.6.27 msi_mcr ? message control register (bn:f7) ....................................... 892 25.6.28 msi_mar_low ? message address low register (bn:f7) ........................ 892 25.6.29 msi_mar_high ? message address high register (bn:f7) ...................... 893 25.6.30 msi_mdr ? message data register (bn:f7)........................................... 893 25.6.31 pci express_cap_id ? pci express* capability identification register (bn:f7) ............................................................. 893 25.6.32 pci express_nxt_ptr ? pci express* next item pointer (bn:f7) ............. 893 25.6.33 pci express_cap ? pci express* capability register (bn:f7) ................... 893 25.6.34 pci express_dev_cap ? pci express* device capability register (bn:f7) ................................................................. 894 25.6.35 pci express_dev_cont ? pci express* device control register (bn:f7) ..................................................................... 894 25.6.36 pci express_dev_status ? pci express* device status register (bn:f7) ...................................................................... 895 25.6.37 pci express_link_cap ? pci express* link capability register (bn:f7) ................................................................. 895 25.6.38 pci express_link_cont ? pci express* link control register (bn:f7) ..................................................................... 896 25.6.39 pci express_link_status ? pci express* link status register (bn:f7) ... 896 26 high-precision event timer registers .................................................................... 897 26.1 memory mapped registers ................................................................................ 897 26.1.1 gcap_id ? general capabilities and identification register...................... 898 26.1.2 gen_conf ? general configuration register ......................................... 898 26.1.3 gintr_sta ? general interrupt status register ..................................... 899 26.1.4 main_cnt ? main counter value register ............................................. 899 26.1.5 timn_conf ? timer n configuration and capabilities register.................. 899 26.1.6 timn_comp ? timer n comparator value register.................................. 901 figures 2-1 intel ? 631xesb/632xesb i/o controller hub interface signals block diagram ...........50 3-1 conceptual system clock diagram .......................................................................86 5-1 intel ? 631xesb/632xesb i/o controller hub device diagram ? balanced................ 101 5-2 intel ? 631xesb/632xesb i/o controller hub device diagram ? lan centric ............ 102 5-3 standard hot-plug system architecture for pci-x* ............................................... 110 5-4 pin assignments for pca9554 ........................................................................... 118 5-5 pin assignments for pca9555 ........................................................................... 119 5-6 system interrupt architecture ........................................................................... 122 5-7 generation of serr# to platform ....................................................................... 127 5-8 intel ? 631xesb/632xesb i/o controller hub ? 82563eb/82564eb kumeran connection ..................................................................................................... 148 5-9 serdes backplane connection ........................................................................... 149 5-10 lan port disable.............................................................................................. 150 5-11 fml topology .................................................................................................. 158 5-12 pwm mode duty cycle ...................................................................................... 159 5-13 expansion bus signal block diagram .................................................................. 160 5-14 lpc interface diagram...................................................................................... 162 5-15 intel ? 631xesb/632xesb i/o controller hub dma controller ................................. 167 5-16 dma request assertion through ldrq# .............................................................. 171 5-17 coprocessor error timing diagram ..................................................................... 194 5-18 physical region descriptor table entry ............................................................... 224 5-19 sata power states .......................................................................................... 230 5-20 sata data flow model...................................................................................... 234 5-21 sgpio signal relationships ............................................................................... 235
intel ? 631xesb/632xesb i/o controller hub datasheet 31 5-22 usb legacy keyboard flow diagram .................................................................. 244 5-23 intel ? 631xesb/632xesb i/o controller hub-usb port connections ....................... 250 5-24 dword configuration read protocol (smbus block write/block read, pec enabled) .. 272 5-25 dword memory read protocol (smbus block write/block read, pec enabled) .......... 272 5-26 dword configuration read protocol (smbus word write/word read, pec enabled)... 272 5-27 dword configuration read protocol (smbus block write/block read, pec disabled).. 273 5-28 dword memory read protocol (smbus block write/block read, pec disabled) ......... 273 5-29 dword configuration read protocol (smbus word write/word read, pec disabled) .. 273 5-30 dword configuration write protocol (smb us block write, pec enabled) .................. 274 5-31 dword memory write protocol (smbus word write, pec enabled) .......................... 274 5-32 word configuration write protocol (smbus byte write, pec enabled)...................... 274 5-33 dword memory read protocol (smbus block write/block read, pec disabled) ......... 274 5-34 dword configuration read protocol (smbus word write/word read, pec disabled) .. 275 5-35 intel ? 631xesb/632xesb i/o controller hub-based audio codec?97 specification, version 2.3 ................................................................................. 278 5-36 ac?97 2.3 controller-codec connection .............................................................. 279 5-37 ac-link protocol.............................................................................................. 280 5-38 ac-link powerdown timing............................................................................... 282 5-39 sdin wake signaling ....................................................................................... 283 6-1 compliance test/measurement load .................................................................. 295 6-2 minimum transmitter timing and voltage output compliance specification ............. 295 6-3 minimum receiver eye timing and voltage compliance specification ...................... 296 6-4 kumeran transmitter test point (tp-t) .............................................................. 300 6-5 kumeran receive test point (tp-r).................................................................... 300 9-1 mechanical layout ........................................................................................... 339 9-2 mechanical layout ........................................................................................... 340 9-3 mechanical layout ........................................................................................... 340 9-4 mechanical layout ........................................................................................... 341 10-1 example xor chain circuitry ............................................................................ 344 tables 1-1 industry specifications and related documents ..................................................... 37 1-2 pci devices and functions .................................................................................. 41 1-3 intel? 631xesb/632xesb i/o controller hub skus................................................ 48 2-1 enterprise south bridge interface signals ............................................................. 53 2-2 pci express* root port signals ........................................................................... 53 2-3 pci express* downstream signals ....................................................................... 53 2-4 pci express* upstream signals ........................................................................... 54 2-5 pci interface signals ......................................................................................... 54 2-6 pci/pci-x* bus interface signals ........................................................................ 57 2-7 pci bus interface 64-bit extension interface signals .............................................. 59 2-8 general hot-plug interface signals ? all hot-plug modes......................................... 59 2-9 serial mode hot-plug signals ? 3 to 6 slots ........................................................... 60 2-10 pci-x* parallel mode hot-plug signals ? 1 to 2 slots .............................................. 60 2-11 interrupt signals ............................................................................................... 63 2-12 kumeran interface signals ................................................................................. 64 2-13 serial ata interface signals................................................................................ 64 2-14 ide interface signals ......................................................................................... 65 2-15 firmware hub interface signals........................................................................... 66 2-16 lpc interface signals ......................................................................................... 67
32 intel ? 631xesb/632xesb i/o controller hub datasheet 2-17 usb interface signals.........................................................................................67 2-18 ac ?97 link signals ............................................................................................68 2-19 processor interface signals .................................................................................68 2-20 smbus interface signals .....................................................................................70 2-21 power management interface signals ...................................................................70 2-22 system management interface signals .................................................................71 2-23 flash and eeprom interface signals.....................................................................72 2-24 expansion bus interface .....................................................................................72 2-25 rs-232 interface ...............................................................................................73 2-26 real time clock interface ...................................................................................73 2-27 jtag interface signals .......................................................................................74 2-28 other clocks .....................................................................................................74 2-29 general purpose i/o signals................................................................................74 2-30 miscellaneous signals .........................................................................................76 2-31 power and ground signals ..................................................................................77 2-32 functional strap definitions.................................................................................79 2-33 intel ? 631xesb/632xesb i/o controller hub revision and device id table ...............82 3-1 intel ? 631xesb/632xesb i/o controller hub and system clock domains ..................85 4-1 integrated pull-up and pull-down resistors ...........................................................87 4-2 ide series termination resistors .........................................................................91 4-3 power plane and states for output and i/o signals for intel ? 631xesb/632xesb i/o controller hub...................................................................................................91 4-4 power plane for input signals for intel ? 631xesb/632xesb i/o controller hub ..........97 5-1 strap values for each configuration ................................................................... 102 5-2 m66en, pcixcap, and px133en pin encoding table ............................................. 106 5-3 pci-x* initialization pattern driven by intel ? 631xesb/632xesb i/o controller hub . 106 5-4 pci transactions supported .............................................................................. 107 5-5 pci-x* transactions supported ......................................................................... 107 5-6 standard hot-plug controller modes ................................................................... 109 5-7 standard hot-plug controller mode determination ................................................ 110 5-8 pci express* register requirements .................................................................. 117 5-9 hot-plug signal to bit assignment ............................................................ 120 5-10 i/o expander address matrix............................................................................. 120 5-11 intel ? 631xesb/632xesb i/o controller hub intx routing table ........................... 123 5-12 pci express credit mapping table ...................................................................... 125 5-13 msi vs. pci irq actions.................................................................................... 125 5-14 pci bridge initiator cycle types ......................................................................... 130 5-15 packet type initiated as master ......................................................................... 136 5-16 standard messages initiated by the intel ? 631xesb/632xesb i/o controller hub..... 137 5-17 packet types supported as target ..................................................................... 137 5-18 standard messages accepted by the intel ? 631xesb/632xesb i/o controller hub as target ................................................................................................. 138 5-19 assignment of client ids................................................................................... 138 5-20 arc memory system table in intel ? 631xesb/632xesb i/o controller hub mms ..... 153 5-21 intel ? 631xesb/632xesb i/o controller hub bmc smbus interface usage summary 157 5-22 lpc cycle types supported ............................................................................... 163 5-23 start field bit definitions .................................................................................. 163 5-24 cycle type bit definitions ................................................................................. 164 5-25 transfer size bit definition................................................................................ 164 5-26 sync bit definition .......................................................................................... 164 5-27 dma channel priority ....................................................................................... 168 5-28 dma transfer size ........................................................................................... 168
intel ? 631xesb/632xesb i/o controller hub datasheet 33 5-29 address shifting in 16-bit i/o dma transfers ...................................................... 169 5-30 counter operating modes ................................................................................. 175 5-31 interrupt controller core connections ................................................................ 177 5-32 interrupt status registers ................................................................................ 178 5-33 content of interrupt vector byte ....................................................................... 178 5-34 apic interrupt mapping.................................................................................... 184 5-35 interrupt message address format .................................................................... 186 5-36 interrupt message data format ......................................................................... 186 5-37 stop frame explanation ................................................................................... 188 5-38 data frame format ......................................................................................... 188 5-39 configuration bits reset by rtcrst# assertion................................................... 191 5-40 init# going active.......................................................................................... 193 5-41 nmi sources ................................................................................................... 194 5-42 dp signal differences....................................................................................... 195 5-43 general power states for systems using intel ? 631xesb/632xesb i/o controller hub ................................................................................................ 196 5-44 state transition rules for intel ? 631xesb/632xesb i/o controller hub .................. 197 5-45 system power plane ........................................................................................ 198 5-46 causes of smi# and sci .................................................................................. 199 5-47 sleep types.................................................................................................... 202 5-48 causes of wake events .................................................................................... 202 5-49 gpi wake events............................................................................................. 203 5-50 transitions due to power failure ....................................................................... 204 5-51 transitions due to power button........................................................................ 206 5-52 transitions due to ri# signal ........................................................................... 207 5-53 write only registers with read paths in alt access mode..................................... 209 5-54 pic reserved bits return values ....................................................................... 210 5-55 register write accesses in alt access mode ....................................................... 211 5-56 intel ? 631xesb/632xesb i/o controller hub clock inputs .................................... 213 5-57 heartbeat message data .................................................................................. 220 5-58 ide transaction timings (pci clocks)................................................................. 222 5-59 interrupt/active bit interaction definition ........................................................... 225 5-60 sata msi vs. pci irq actions ........................................................................... 231 5-61 legacy replacement routing ............................................................................ 236 5-62 bits maintained in low power states .................................................................. 243 5-63 usb legacy keyboard state transitions.............................................................. 245 5-64 uhci vs. ehci ................................................................................................ 246 5-65 debug port behavior........................................................................................ 253 5-66 i 2 c* block read .............................................................................................. 261 5-67 enable for smbalert# .................................................................................... 263 5-68 enables for smbus slave write and smbus host events ........................................ 263 5-69 enables for the host notify command ................................................................ 264 5-70 slave write registers....................................................................................... 265 5-71 command types ............................................................................................. 265 5-72 read cycle format .......................................................................................... 266 5-73 data value for slave read registers .................................................................. 267 5-74 host notify format .......................................................................................... 268 5-75 smbus address configuration............................................................................ 269 5-76 smbus command encoding............................................................................... 270 5-77 smbus status byte encoding............................................................................. 271 5-78 features supported by intel ? 631xesb/632xesb i/o controller hub ac?97 digital controller .................................................................................... 277
34 intel ? 631xesb/632xesb i/o controller hub datasheet 5-79 output tag slot 0 ............................................................................................ 281 6-1 intel ? 631xesb/632xesb i/o controller hub power consumption estimates with wake-on-lan (lan tied to aux power) ........................................................ 287 6-2 intel ? 631xesb/632xesb i/o controller hub power consumption estimates with wake-on-lan (lan tied to core power) ...................................................... 287 6-3 dc characteristic input signal association........................................................... 288 6-4 dc input characteristics ................................................................................... 289 6-5 dc characteristic output signal association ........................................................ 290 6-6 dc output characteristics ................................................................................. 292 6-7 other dc characteristics................................................................................... 293 6-8 intel? 631xesb/632xesb i/o controller hub 1.5 v supply rail tolerances.............. 293 6-9 pci express* differential transmitter (tx) dc output specifications ....................... 294 6-10 pci express* differential receiver (rx) dc input specifications ............................. 297 6-11 dc specifications for pci .................................................................................. 297 6-12 dc specifications for pci and mode 1 pci-x* 3.3 v signaling ................................. 298 6-13 pci hot plug slot power requirements................................................................ 299 6-14 general lan dc electrical characteristic for 3.3 v i/o pads ................................... 299 6-15 kumeran transmit specifications at tp-t ............................................................ 300 6-16 kumeran receiver specifications at tp-r ............................................................ 301 6-17 kumeran transmit electrical idle characteristics .................................................. 301 6-18 kumeran receive electrical idle characteristics.................................................... 301 6-19 lan and bmc general dc electrical characteristics for 3.3v i/o pads ...................... 301 7-1 intel ? 631xesb/632xesb i/o controller hub ballout (left third) ........................... 303 7-2 intel ? 631xesb/632xesb i/o controller hub ballout (middle third) ........................ 304 7-3 intel ? 631xesb/632xesb i/o controller hub ballout (right third).......................... 305 10-1 tap controller pins .......................................................................................... 343 10-2 tap instructions supported by the intel ? 631xesb/632xesb i/o controller hub ...... 343 10-3 xor test pattern example ................................................................................ 345 10-4 xor chain #1 (req[4:1]# = 0000) ................................................................... 345 10-5 xor chain #2 (req[4:1]# = 0001) ................................................................... 346 10-6 xor chain #3 (req[4:1]# = 0010) ................................................................... 347 10-7 xor chain #4-1 (req[4:1]# = 0011) ................................................................ 347 10-8 xor chain #5 (req[4:1]# = 0100) ................................................................... 349 11-1 register nomenclature and access attributes ...................................................... 351 11-2 pci devices and functions ................................................................................ 352 11-3 fixed i/o ranges decoded by the intel ? 631xesb/632xesb i/o controller hub ....... 354 11-4 variable i/o decode ranges .............................................................................. 356 11-5 memory decode ranges from processor perspective ............................................. 357 12-1 chipset configuration register memory map (memory space) ................................ 359 13-1 configuration register summary........................................................................ 398 13-2 configuration register summary........................................................................ 429 13-3 indirect memory space registers summary......................................................... 442 13-4 configuration register summary........................................................................ 445 13-5 hot-plug controller register summary................................................................ 485 14-1 intel? high definition audio pci register address map (high definition audio ? d27:f0) ....................................................................... 495 14-2 intel? high definition audio pci register address map (high definition audio ? d27:f0) ....................................................................... 512 15-1 pci express* configuration registers address map (pci express ? d28:f0/f1/f2/f3) ...................................................................... 535 16-1 uhci controller pci register address map (usb ? d29:f0/f1/f2/f3)...................... 567 16-2 usb i/o registers............................................................................................ 575
intel ? 631xesb/632xesb i/o controller hub datasheet 35 16-3 run/stop, debug bit interaction swdbg (bit 5), run/stop (bit 0) operation........... 577 17-1 usb ehci pci register address map (usb ehci ? d29:f7) ................................... 583 17-2 enhanced host controller capability registers ..................................................... 596 17-3 enhanced host controller operational register address map ................................. 598 17-4 debug port register address map ...................................................................... 609 18-1 pci bridge register address map (pci-pci ? d30:f0) ........................................... 613 19-1 ac ?97 audio pci register address map (audio ? d30:f2) ..................................... 627 19-2 intel ? 631xesb/632xesb i/o controller hub audio mixer register configuration ..... 636 19-3 native audio bus master control registers .......................................................... 638 20-1 ac ?97 modem pci register address map (modem ? d30:f3) ................................ 649 20-2 intel ? 631xesb/632xesb i/o controller hub modem mixer register configuration ... 656 20-3 modem registers............................................................................................. 657 21-1 lpc interface pci register address map (lpc i/f ? d31:f0) .................................. 665 21-2 dma registers ................................................................................................ 677 21-3 pic registers (lpc i/f ? d31:f0) ...................................................................... 687 21-4 apic direct registers (lpc i/f ? d31:f0) ........................................................... 692 21-5 apic indirect registers (lpc i/f ? d31:f0) ......................................................... 693 21-6 rtc i/o registers (lpc i/f ? d31:f0) ................................................................ 696 21-7 rtc (standard) ram bank (lpc i/f ? d31:f0) .................................................... 697 21-8 processor interface pci register address map (lpc i/f ? d31:f0).......................... 700 21-9 power management pci register address map (pm ? d31:f0) ............................... 703 21-10 acpi and legacy i/o register map..................................................................... 709 21-11 tco i/o register address map .......................................................................... 722 21-12 registers to control gpio address map .............................................................. 728 22-1 ide controller pci register address map (ide-d31:f1) ........................................ 735 22-2 bus master ide i/o registers ............................................................................ 745 23-1 sata controller pci register address map (sata?d31:f2) ................................... 749 23-2 bus master ide i/o register address map........................................................... 768 23-3 ahci register address map .............................................................................. 771 23-4 generic host controller register address map ..................................................... 771 23-5 port [5:0] dma register address map ................................................................ 775 24-1 smbus controller pci register address map (smbus ? d31:f3)............................. 789 24-2 smbus i/o register address map....................................................................... 793 25-1 intel ? 6321esb i/o controller hub integrated lan controller pci register address map (lan0 ? bn:f0), (lan1 ? bn:f1)................................................... 803 25-2 data register structure.................................................................................... 813 25-3 revid register................................................................................................ 819 25-4 ide pci configuration register address map bn:f2) ............................................. 822 25-5 data register structure.................................................................................... 832 25-6 serial pci configuration register address map bn:f3)........................................ 837 25-7 data register structure.................................................................................... 847 25-8 ipmi/kcs0 pci configuration register address map bn:f4) ................................... 852 25-9 data register structure.................................................................................... 862 25-10 uhci configuration register address map bn:f5) ................................................ 867 25-11 data register structure.................................................................................... 877 25-12 bt pci configuration register address map bn:f7) .............................................. 882 25-13 data register structure.................................................................................... 892 26-1 memory-mapped registers................................................................................ 897
36 intel ? 631xesb/632xesb i/o controller hub datasheet revision history document number revision number description date 313082 -001 ? initial release of the document. may 2006
intel ? 631xesb/632xesb i/o controller hub datasheet 37 introduction 1 introduction 1.1 about this document this specification is intended for original equipment manufacturers designing and building intel ? 631xesb/632xesb i/o controller hub-based products. this manual assumes a working knowledge of the vocabulary and principles of pci express*, usb, ide, ahci, sata, smbus, pci, pci-x*, acpi, esi, jtag, and lpc. although some details of these features are described within this specification, refer to the individual industry specifications listed in ta b l e 1 - 1 for complete details. table 1-1. industry specifications and related documents (sheet 1 of 2) document location advanced configuration and power interface, version 2.0 (acpi) http://www.acpi.info/spec.htm aes cbc-mode cipher algorithm, rfc 2451 http://www.ietf.org/rfc/ rfc2451.txt?number=2451 alert standard format specification, version 2.0 http://www.dmtf.org/standards/ standard_alert.php at attachment - 6 with packet interface (ata/atapi - 6) http://t13.org (t13 1410d) audio codec ?97 component specification, version 2.3 (ac?97) http://www.intel.com/labs/media/audio/ index.htm enhanced host controller interface specification for universal serial bus, revision 1.0 (ehci) http://developer.intel.com/technology/usb/ ehcispec.htm hmac key-hashing for message authentication, rfc 2104 http://www.ietf.org/rfc/ rfc2104.txt?number=2104 ia-pc hpet (high precision event timers) specification, revision 0.98a http://www.intel.com/labs/platcomp/hpet/ hpetspec.htm ieee 802.3 fast ethernet http://standards.ieee.org ieee standard test access port and boundary scan architecture 1149.1 specifications http://standards.ieee.org/reading/ieee/ std_public/description/testtech/1149.1- 1990_desc.html intel ? 631xesb/632xesb i/o controller hub eds specification update http://developer.intel.com ipmi v1.5 specification http://www.intel.com/design/servers/ipmi/ spec.htm low pin count interface specification, revision 1.1 (lpc) http://developer.intel.com/design/chipsets/ industry/lpc.htm md5 message digest algorithm, rfc 1321 http://www.ietf.org/rfc/ rfc1321.txt?number=1321 pci express* base specification, revision 1.0a http://www.pcisig.com/specifications pci local bus specification, revision 2.3 (pci) http://www.pcisig.com/specifications pci power management specification, revisi on 1.1 http://www.pcisig.com/specifications pci standard hot-plug controller specificatio n rev 1.0 http://www.pcisig.com/specifications pci-x electrical and mechanical addendum to the pci base specification, revision 2.0a http://www.pcisig.com/specifications pci-x protocol addendum to the pci base specification, revision 2.0a http://www.pcisig.com/specifications pci-x protocol addendum to the pci local bus specification revision 2.0 http://www.pcisig.com/specifications
38 intel ? 631xesb/632xesb i/o controller hub datasheet introduction the following is a chapter-by-chapter description of the information in this document. chapter 1, ?introduction? introduces the intel ? 631xesb/632xesb i/o controller hub, provides information on manual organization, and gives a general overview of the component. chapter 2, ?signal descriptions? provides a block diagram of the intel ? 631xesb/632xesb i/o controller hub and a detailed description of each signal. signals are arranged according to interface and details are provided as to the drive characteristics (input/output, open drain, and so on) of all signals. chapter 3, ?intel ? 631xesb/632xesb i/o controller hub and system clock domains? provides a list of each clock domain associated with the intel ? 631xesb/632xesb i/o controller hub in an intel ? 631xesb/632xesb i/o controller hub-based system. chapter 4, ?intel ? 631xesb/632xesb i/o controller hub pin states? provides a complete list of signals, their associated power well, their logic level in each suspend state, and their logic level before and after reset. chapter 5, ?functional description? provides a detailed description of the functions in the intel ? 631xesb/632xesb i/o controller hub. all pci buses, devices and functions in this manual are abbreviated using the following nomenclature; bus:device:function. this manual abbreviates buses as b0 and b1, devices as d8, d27, d28, d 29, d30 and d31 and functions as f0, f1, f2, f3, f4, f5, f6 and f7. for example device 31 function 0 is abbreviated as d31:f0, bus n device 0function 0 is abbreviated as bn:d0:f0. chapter 6, ?electrical characteristics? provides all ac and dc characteristics including detailed timing diagrams. chapter 7, ?component ballout? provides tables with each signal and its ball assignment in the 641-mbga package, as well as diagrams of the ballout grid. chapter 8, ?signal lists? provides drawings of the physical dimensions and characteristics of the 641-mbga package. pci-x* protocol addendum to the pci local bus specification, revision 2.0a http://www.pcisig.com/specifications serial ata advanced host controller interface (ahci) specification, revision 1.0 http://www.serialata.org serial ata 1.0a specification http://www.serialata.org serial ata ii: extensions to serial ata 1.0, revision 1.0 http://www.serialata.org sha1 secure hash algorithm rfc 3174 http://www.ietf.org/mail-archive/ietf- announce/current/msg14881.html system management bus specification, version 2.0 (smbus) http://www.smbus.org/specs/ universal serial bus revision 2.0 specification (usb) http://www.usb.org universal host controller interface, revision 1.1 (uhci) http://developer.intel.com/design/usb/ uhci11d.htm wired for management baseline version 2.0 (wfm) http://www.intel.com/labs/manage/wfm/ wfmspecs.htm table 1-1. industry specifications and related documents (sheet 2 of 2) document location
intel ? 631xesb/632xesb i/o controller hub datasheet 39 introduction chapter 9, ?mechanical specifications? provides drawings of the physical dimensions and characteristics of the 641-mbga package. chapter 10, ?testability? provides detail about the implementation of test modes provided in the intel ? 631xesb/632xesb i/o controller hub, and is the final chapter of volume 1. chapter 11, ?register and memory mapping? provides an overview of the registers, fixed i/o ranges, variable i/o ranges, and memory ranges decoded by the intel ? 631xesb/632xesb i/o controller hub. chapter 12, ?chipset configuration registers? provides a detailed description of all registers and base functionality related to chipset configuration and not a specific interface (such as lpc, pci, or pci express). it contains the root complex register block, which describes the behavior of the upstream internal link. chapter 13, ?pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0)? provides a detailed description of all registers that reside in the pci express-to-pci-x bridge controller. this controller resides at device 0, function 0 (d0:f0). this includes the ioxapic (d0:f1), pci express upstream port (d0:f3), and 3 x4 pci express downstream ports (bp:d0/d1/d2:f0). chapter 14, ?intel ? high definition audio controller registers (d27:f0)? provides a detailed description of all registers that reside in the high definition audio controller. this controller resides at device 27, function 0 (d27:f0). chapter 15, ?pci express* configuration registers? provides a detailed description of all registers that reside in the pci express controller. this controller resides at device 28, functions 0 to 3 (d30:f0/f1/f2/f3). chapter 16, ?uhci controllers registers? provides a detailed description of all registers that reside in the four uhci host controllers. these controllers reside at device 29, functions 0, 1, 2, and 3 (d29:f0/f1/ f2/f3). chapter 17, ?ehci controller registers (d29:f7)? provides a detailed description of all registers that reside in the ehci host controller. this controller resides at device 29, function 7 (d29:f7). chapter 18, ?pci-to-pci bridge registers (d30:f0)? provides a detailed description of all registers that reside in the pci-to-pci bridge. this bridge resides at device 30, function 0 (d30:f0). chapter 19, ?ac?97 audio controller registers (d30:f2)? provides a detailed description of all registers that reside in the audio controller. this controller resides at device 30, function 2 (d30:f2). note that this section of the eds does not include the native audio mixer registers. accesses to the mixer registers are forwarded over the ac-link to the codec where the registers reside. chapter 20, ?ac?97 modem controller registers (d30:f3)? provides a detailed description of all registers that reside in the modem controller. this controller resides at device 30, function 3 (d30:f3). note that this section of the eds does not include the modem mixer registers. accesses to the mixer registers are forwarded over the ac-link to the codec where the registers reside.
40 intel ? 631xesb/632xesb i/o controller hub datasheet introduction chapter 21, ?lpc interface bridge registers (d31:f0)? provides a detailed description of all registers that reside in the lpc bridge. this bridge resides at device 31, function 0 (d31:f0). this function contains registers for many different units within the intel ? 631xesb/632xesb i/o controller hub including dma, timers, interrupts, processor interface, gpio, power management, system management, and rtc. chapter 22, ?ide controller registers (d31:f1)? provides a detailed description of all registers that reside in the ide controller. this controller resides at device 31, function 1 (d31:f1). chapter 23, ?sata controller registers (d31:f2)? provides a detailed description of all registers that reside in the sata controller. this controller resides at device 31, function 2 (d31:f2). chapter 24, ?smbus controller registers (d31:f3)? provides a detailed description of all registers that reside in the smbus controller. this controller resides at device 31, function 3 (d31:f3). chapter 25, ?lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7)? provides a detailed description of all registers that reside in the intel ? 631xesb/ 632xesb i/o controller hub?s integrated lan controller. the integrated lan controller resides on the intel ? 631xesb/632xesb i/o controller hub?s external pci bus (typically bus 1) at device 0, function 0 (bn:d0:f0). chapter 26, ?high-precision event timer registers? provides a detailed description of all registers that reside in the multimedia timer memory mapped register space. 1.2 overview the intel ? 631xesb/632xesb i/o controller hub component integrates bridge functionality for pci express, pci-x, conventional pci, lpc, usb, sata, ide and smbus, and dual-gigabit ethernet mac components as well as numerous board management functions. it provides for all system i/o, allowing for simpler system board architectures and smaller board areas than if discrete components were used. thus, the intel ? 631xesb/632xesb i/o controller hub provides extensive i/o support. functions and capabilities include: ? enterprise south bridge interface (esi) and pci express x8 upstream ports to memory controller hub (mch) ? pci express* specification, revision 1.0a -compliant ? pci protocol addendum and pci electrical and mechanical addendum to the pci local bus specification, revision 2.0a -compliant ? pci local bus specification, revision 2.3 -compliant with support for 33 mhz pci operations (supports up to seven req/gnt pairs) ? acpi power management logic support ? enhanced dma controller, interrupt controller, and timer functions ? integrated serial ata host controller with independent dma operation on six ports and ahci support ? integrated ide controller supports ultra ata100/66/33 ? usb host interface with support for eight usb ports; four uhci host controllers; one ehci high-speed usb 2.0 host controller
intel ? 631xesb/632xesb i/o controller hub datasheet 41 introduction ? dual gigabit mac with kumeran interface to dual-phy component ? picmg-compliant serdes backplane gigabit ethernet support ? integrated board management controller with basic rom firmware, expandability through external flash and ram memories ? system management bus (smbus) specification, version 2.0 -compliant with additional support for i 2 c* devices ? audio interface (ac?97 and intel ? high definition audio) ? low pin count (lpc) interface ? firmware hub (fwh) interface support the intel ? 631xesb/632xesb i/o controller hub incorporates a variety of pci functions that are divided into several logical devices (bm:d0, b0:d28, b0:d29, b0:d30, b0:d31, bn:d0, bp :d0, bp:d1 and bp:d3). bm:d0 is the pci express upstream port-to-pci-x bridge, d28 contains the pci express root ports, d30 is the esi-to-pci bridge, d31 contains the pci-to-lpc bridge, ide controller, sata controller, smbus controller and the ac ?97 audio and modem controller functions, and d29 contains the four usb uhci controllers and one usb ehci controller. bn:d0 is the integrated lan controller and macs. bp:d0, bp:d1 and bp:d3 are peci express downstream ports. table 1-2. pci devices and functions (sheet 1 of 2) bus:device:function function description bus m:device 0:function 0 pci express* upstream port bus m:device 0:function 1 i/oxapic controller bus m:device 0:function 3 pci express-to-pci-x* bridge bus p:device 0:function 0 pci express downstream port 1 bus p:device 1:function 0 pci express downstream port 2 bus p:device 2:function 0 pci express downstream port 3 bus 0:device 30:function 0 pci-to-pci bridge bus 0:device 30:function 2 ac ?97 audio controller bus 0:device 30:function 3 ac ?97 modem controller bus 0:device 31:function 0 lpc controller 1 bus 0:device 31:function 1 ide controller bus 0:device 31:function 2 sata controller bus 0:device 31:function 3 smbus controller bus 0:device 29:function 0 usb uhci controller #1 bus 0:device 29:function 1 usb uhci controller #2 bus 0:device 29:function 2 usb uhci controller #3 bus 0:device 29:function 3 usb uhci controller #4 bus 0:device 29:function 7 usb 2.0 ehci controller bus 0:device 28:function 0 pci express port 1 bus 0:device 28:function 1 pci express port 2 bus 0:device 28:function 2 pci express port 3 bus 0:device 28:function 3 pci express port 4 bus 0:device 27:function 0 high definition audio controller
42 intel ? 631xesb/632xesb i/o controller hub datasheet introduction note: the pci-to-lpc bridge contains registers that co ntrol lpc, power management, system management, gpio, processor interface, rtc, interrupts, timers, and dma. the following sub-sections provide an overview of the intel ? 631xesb/632xesb i/o controller hub?s capabilities. enterprise south bridge interface (esi) enterprise south bridge interface (esi) is the chip-to-chip connection between the memory controller hub (mch) and i/o controller hub functions of the intel ? 631xesb/ 632xesb i/o controller hub. maximum realized bandwidth on this interface is 1 gb/s in each direction simultaneously, for an aggregate of 2 gb/s. base functionality is completely software-transparent, permitting current and legacy software to operate normally. pci express* interfaces the intel ? 631xesb/632xesb i/o controller hub provides 4 pci express root ports which are compliant to the pci express* base specification revision 1.0a . the pci express root ports can be statically configured as four x1 ports or ganged together to form one x4 port. each root port supports 250 mb/s bandwidth in each direction (500 mb/s concurrent). an additional pci express interface is provided for connection to the memory controller hub (mch). maximum realized bandwidth on this interface is 2 gb/s in each direction simultaneously, for an aggregate of 4 gb/s. this pci express interface is also compliant with the pci express* base specification revision 1.0a , and supports x4 and x8 widths. intel ? 631xesb/632xesb i/o controller hub also implement two x4 pci express downstream ports, maximum realized bandwidth on this interface is 1 gb/s in each direction simultaneously, for an aggregate of 2 gb/s. these two ports can also be configured as one x8 pci express port. this pci express interface is also compliant with the pci express* base specification revision 1.0a . pci-x* bus interface the intel ? 631xesb/632xesb i/o controller hub provides a pci-x* bus interface which can be independently configured as either a pci bus or a pci-x bus. this interface supports conventional pci and pci- x mode 1. pci bus extensions are also supported; these include 64-bit addressing outbound with the capability to assert dac, and full 64-bit addressing inbound. the inbound packet size is based on cache line size of the platform. bus n:device 0:function 0 lan 0/lan 1 controller bus n:device 0:function 1 lan 0/lan 1 controller bus n:device 0:function 2 ide redirection controller bus n:device 0:function 3 serial port redirection controller bus n:device 0:function 4 ipmi/kcs0 bus n:device 0:function 5 uhci redirection controller bus n:device 0:function 7 bt controller table 1-2. pci devices and functions (sheet 2 of 2) bus:device:function function description
intel ? 631xesb/632xesb i/o controller hub datasheet 43 introduction the pci-x interface on the intel ? 631xesb/632xesb i/o controller hub is compliant with the pci-x addendum to the pci local bus specification revision 1. 0b as well as the pci-x electrical and mechanical addendum to the pci local bus specification revision 2.0a and the pci-x protocol addendum to the pci local bus specification revision 2.0a . for conventional pci mode, the intel ? 631xesb/632xesb i/o controller hub supports pci bus frequencies of 33 mhz and 66 mhz. for pci-x mode 1, the intel ? 631xesb/ 632xesb i/o controller hub supports pci bus frequencies of 66 mhz, 100 mhz, and 133 mhz. for this interface, four pci-x bus slots are supported at 66 mhz, two slots are supported at 100 mhz, and one slot is supported at 133 mhz. pci bus interface the intel ? 631xesb/632xesb i/o controller hub pci local bus interface provides a 33 mhz, revision 2.3 implementation. all pci signals are 5 v tolerant, except pciclk pme#. the intel ? 631xesb/632xesb i/o controller hub integrates a pci arbiter that supports up to seven external pci bus masters in addition to the internal intel ? 631xesb/632xesb i/o controller hub requests. this allows for combinations of up to seven pci down devices and pci slots on this interface. pci standard hot-plug controller the intel ? 631xesb/632xesb i/o controller hub hot-plug controller is compliant with pci standard-hot-plug controller and subsystem specification, revision 1.0 and allows pci card removal, replacement, and addition without powering down the system. the intel ? 631xesb/632xesb i/o controller hub hot-plug controller supports three to six pci slots through an input/output serial interface when operating in serial mode, and one to two slots through an input/output parallel interface when operating in parallel mode. the intel ? 631xesb/632xesb i/o controller hub can also operate in ?one-slot- no-glue? hot-plug mode, which does not require and on-board logic for enabling and disabling the bus and clocks signals to the pci/pci-x hot-plug slots. the input serial interface is polling and is in continuous operation. the output serial interface is ?demand? and acts only when requested. th ese serial interfaces run at about 8.25 mhz regardless of the speed of the pci bus. in parallel mode, the intel ? 631xesb/632xesb i/o controller hub performs the serial to parallel conversion internally, so the serial interface cannot be observed. however, internally the hot-plug controller always operates in a serial mode. serial ata (sata) controller the intel ? 631xesb/632xesb i/o controller hub has an integrated sata host controller that supports independent dma operation on six ports and supports data transfer rates of up to 3.0 gb/s (300 mb/s). the sata controller contains two modes of operation ? a legacy mode using i/o space, and an ahci mode using memory space. sata and pata can also be used in a combined function mode (where the sata function is used with pata). in this combined function mode, ahci mode is not used. software that uses legacy mode will not have ahci capabilities.
44 intel ? 631xesb/632xesb i/o controller hub datasheet introduction ide interface (bus master capability and synchronous dma mode) the ide interface supports up to two ide devices providing an interface for ide hard disks and atapi devices. each ide device can have independent timings. the ide interface supports pio ide transfers up to 16 mbytes/sec and ultra dma transfer rates of up to 133 mb/sec on reads and 88 mb/sec on write. it does not consume any isa dma resources. the ide interface integrates 16x32-bit buffers for optimal transfers. the intel ? 631xesb/632xesb i/o controller hub?s ide system contains a single, independent ide signal channel that can be electrically isolated. there are integrated series resistors on the data and control lines (see section 5.17 for details). low pin count (lpc) interface the intel ? 631xesb/632xesb i/o controller hub implements an lpc interface as described in the lpc 1.1 specification. the low pin count (lpc) bridge function of the intel ? 631xesb/632xesb i/o controller hub resides in pci device 31:function 0. in addition to the lpc bridge interface function, d31:f0 contains other functional units including dma, interrupt controllers, timers, power management, system management, gpio, and rtc. note that in the current chipset platform, the super i/o (sio) component has migrated to the low pin count (lpc) interface. migration to the lpc interface allows for lower cost super i/o designs. compatibility modules (dma controller, timer/counters, interrupt controller) the dma controller incorporates the logic of two 82c37 dma controllers, with seven independently programmable channels. channels 0?3 are hardwired to 8-bit, count-by- byte transfers, and channels 5?7 are hardwired to 16-bit, count-by-word transfers. any two of the seven dma channels can be programmed to support fast type-f transfers. the intel ? 631xesb/632xesb i/o controller hub supports lpc dma, which is similar to isa dma, through the intel ? 631xesb/632xesb i/o controller hub?s dma controller. lpc dma is handled through the use of the ldrq# lines from peripherals and special encoding on lad[3:0] from the host. single, demand, verify, and increment modes are supported on the lpc interface. channels 0?3 are 8-bit channels. channels 5?7 are 16- bit channels. channel 4 is reserved as a generic bus master request. the timer/counter block contains three counters that are equivalent in function to those found in one 82c54 programmable interval timer. these three counters are combined to provide the system timer function, and speaker tone. the 14.31818 mhz oscillator input provides the clock source for these three counters. the intel ? 631xesb/632xesb i/o controller hub provides an isa-compatible programmable interrupt controller (pic) that incorporates the functionality of two, 82c59 interrupt controllers. the two interrupt controllers are cascaded so that 14 external and two internal interrupts are possible. in addition, the intel ? 631xesb/ 632xesb i/o controller hub supports a serial interrupt scheme. all of the registers in these modules can be read and restored. this is required to save and restore system state after power has been removed and restored to the platform.
intel ? 631xesb/632xesb i/o controller hub datasheet 45 introduction advanced programmable interrupt controller (apic) in addition to the standard isa compatible programmable interrupt controller (pic) described in the previous section, the intel ? 631xesb/632xesb i/o controller hub incorporates two advanced programmable interrupt controllers (apics). universal serial bus (usb) controller the intel ? 631xesb/632xesb i/o controller hub contains an enhanced host controller interface (ehci) compliant host controller that supports usb high-speed signaling. high-speed usb 2.0 allows data transfers up to 480 mb/s which is 40 times faster than full-speed usb. the intel ? 631xesb/632xesb i/o controller hub also contains four universal host controller interface (uhci) controllers that support usb full-speed and low-speed signaling. the intel ? 631xesb/632xesb i/o controller hub supports eight usb 2.0 ports. all eight ports are high-speed, full-speed, and low-speed capable. the intel ? 631xesb/ 632xesb i/o controller hub?s port-routing logic determines whether a usb port is controlled by one of the uhci controllers or by the ehci controller. see section 5.20 and section 5.21 for details. rtc the intel ? 631xesb/632xesb i/o controller hub contains a motorola mc146818a*- compatible real-time clock with 256 bytes of battery-backed ram. the real-time clock performs two key functions: keeping track of the time of day and storing system data, even when the system is powered down. the rtc operates on a 32.768 khz crystal and a separate 3 v lithium battery that provides up to seven years of protection. the rtc also supports two lockable memory ranges. by setting bits in the configuration space, two 8-byte ranges can be locked to read and write accesses. this prevents unauthorized reading of passwords or other system security information. the rtc also supports a date alarm that allows for scheduling a wake up event up to 30 days in advance, rather than just 24 hours in advance. gpio various general purpose inputs and outputs are provided for custom system design. enhanced power management the intel ? 631xesb/632xesb i/o controller hub?s power management functions include enhanced clock control, local and global monitoring support for 14 individual devices, and various low-power (suspend) states. a hardware-based thermal management circuit permits software-independent entrance to low-power states. the intel ? 631xesb/632xesb i/o controller hub contains full support for the advanced configuration and power interface, version 2.0 . system management bus (smbus 2.0) the intel ? 631xesb/632xesb i/o controller hub contains several smbus host interfaces that allow the processor to communicate with smbus slaves. these interfaces are compatible with most i 2 c devices. special i 2 c commands are implemented.
46 intel ? 631xesb/632xesb i/o controller hub datasheet introduction the intel ? 631xesb/632xesb i/o controller hub?s smbus host controllers provide a mechanism for the processor to initiate communications with smbus peripherals (slaves). also, the intel ? 631xesb/632xesb i/o controller hub supports slave functionality, including the host notify protocol. hence, the host controller supports eight command protocols of the smbus interface (see system management bus (smbus) specification, version 2.0): quick command, send byte, receive byte, write byte/word, read byte/word, process call, block read/write, and host notify. the intel ? 631xesb/632xesb i/o controller hub?s smbus also implements hardware- based packet error checking for data robustness and the address resolution protocol (arp) to dynamically provide addresses to all smbus devices. manageability the intel ? 631xesb/632xesb i/o controller hub integrates several functions designed to manage the system and lower the total cost of ownership (tco) of the system. these system management functions are designed to report errors, diagnose the system, and recover from system lockups without the aid of an external microcontroller. ? tco timer. the intel ? 631xesb/632xesb i/o controller hub?s integrated programmable tco timer is used to detect system locks. the first expiration of the timer generates an smi# that the system can use to recover from a software lock. the second expiration of the timer causes a system reset to recover from a hardware lock. ? processor present indicator. the intel ? 631xesb/632xesb i/o controller hub looks for the processor to fetch the first instruction after reset. if the processor does not fetch the first instruction, the intel ? 631xesb/632xesb i/o controller hub will reboot the system. ? ecc error reporting. when detecting an ecc error, the host controller has the ability to send one of several messages to the intel ? 631xesb/632xesb i/o controller hub. the host controller can instruct the intel ? 631xesb/632xesb i/o controller hub to generate either an smi#, nmi, serr#, or tco interrupt. ? function disable. the intel ? 631xesb/632xesb i/o controller hub provides the ability to disable the following integrated functions: ac ?97 modem, ac ?97 audio, ide, lan, usb, lpc, high definition audio, sata, or smbus. once disabled, these functions no longer decode i/o, memory, or pci configuration space. also, no interrupts or power management events are generated from the disable functions. ? intruder detect. the intel ? 631xesb/632xesb i/o controller hub provides an input signal (intruder#) that can be attached to a switch that is activated by the system case being opened. the intel ? 631xesb/632xesb i/o controller hub can be programmed to generate an smi# or tco interrupt due to an active intruder# signal. ? smbus 2.0. the intel ? 631xesb/632xesb i/o controller hub integrates smbus controllers that provide interfaces to ma nage peripherals (for example, serial presence detection (spd), thermal sensors, and so on) with host notify capabilities. ? bmc. the intel ? 631xesb/632xesb i/o controller hub implements an arc4 microcontroller and its memory subsystem for all manageability operations. the baseboard management controller (bmc) system includes interfaces to most modules and main nodes in the intel ? 631xesb/632xesb i/o controller hub lan. the bmc system is operated by firmware (embedded software) and is a flexible infrastructure for server management implementation. ? note : external bmc support. refer to the 82571/82572/esb2 lan system management bus interface application note (ap-497) for more information.
intel ? 631xesb/632xesb i/o controller hub datasheet 47 introduction ac?97 2.3 controller the intel ? 631xesb/632xesb i/o controller hub integrates an audio codec '97 component specification, version 2.3 controller that can be used to attach an audio codec (ac), a modem codec (mc), an audio/modem codec (amc) or a combination of acs and a single mc. the intel ? 631xesb/632xesb i/o controller hub supports up to six channels of pcm audio output (full ac3 decode). for a complete surround-sound experience, six-channel audio consists of: front left, front right, back left, back right, center, and subwoofer. intel ? 631xesb/632xesb i/o controller hub has expanded support for up to three audio codecs on the ac-link. in addition, an ac '97 soft modem can be implemented with the use of a modem codec. several system options exist when implementing ac '97. the intel ? 631xesb/632xesb i/o controller hub-integrated ac '97 controller allows up to three external codecs to be connected to the intel ? 631xesb/632xesb i/o controller hub. the system designer can provide ac '97 modem with a modem codec, or both audio and modem with up to two audio codecs with a modem codec. intel ? high definition audio controller the high definition audio specification defines a digital interface that can be used to attach audio codecs (ac), the high definition audio specification defines the interface between the system logic and the audio codec, known as the high definition audio digital link. the high definition audio digital link and the ac-link share signal lines. concurrent operation of ac ?97 and high definition audio audio is not supported. by using an audio codec, the high definition audio digital link allows for cost-effective, high-quality (24-bit output, 16-bit input), integrated audio on intel?s chipset-based platform. the intel ? 631xesb/632xesb i/o controller hub-integrated digital link allows three external codecs to be connected to the intel ? 631xesb/632xesb i/o controller hub. the intel ? 631xesb/632xesb i/o controller hub expands the audio capability with support for up to six channels of pcm audio output (full ac3 decode). six-channel audio consists of front left, front right, back le ft, back right, center, and subwoofer, for a complete surround-sound effect. on the input side the intel ? 631xesb/632xesb i/o controller hub adds support for an array of up to six microphones. the intel ? 631xesb/632xesb i/o controller hub?s high definition audio controller has an integrated pci express controller which provides support for three virtual channels that can be used to provide glitch-free audio to the system. dual-gigabit ethernet the intel ? 631xesb/632xesb i/o controller hub contains two fully integrated gigabit ethernet media access control (mac). this provides a standard ieee 802.3 ethernet interface for 1000base-t, 1000base-x, 100base-tx, and 10base-t applications (802.3, 802.3z, 802.3u, and 802.3ab). each port contains a kumeran interface for connecting the intel ? 631xesb/632xesb i/o controller hub to the 82563eb/82564eb dual/single-phy device. this interface supports 4 pins per port, incorporating the mii management interface into the data packets pins in order to ease routing requirements and device pin count. intel ? 631xesb/632xesb i/o controller hub also incorporates dual serdes interfaces for direct connection to switch fabrics and fiber modules. intel ? 631xesb/632xesb i/o controller hub lan supports the i/oat technology.
48 intel ? 631xesb/632xesb i/o controller hub datasheet introduction i/oat is a platform feature that provides tcp acceleration using chipset and lan hw offload features and optimized ia software to provide high-performance, low cpu utilization networking. jtag the intel ? 631xesb/632xesb i/o controller hub has a jtag (tap) port compliant with the ieee standard test access port and boundary scan architecture 1149.1 specifications. the tap controller is accessed serially through five dedicated pins. this can be used for test and debug purposes. system board interconnects can be dc tested using the boundary scan logic in pads. see chapter 10 for more on intel ? 631xesb/ 632xesb i/o controller hub testability. 1.3 intel ? 631xesb/632xesb i/o controller hub sku definition notes: 1. contact your local intel field sales representative for currently available intel ? 631xesb/632xesb i/o controller hub skus. 2. ?intel ? i/o acceleration technology? replaces pr ior ?diamond peak technology? codename. 3. intel ? active server manager includes the following features: ipmi2.0 compliance, intel ? active client manager, fw sdk, and smwg based interface. table 1-3. intel ? 631xesb/632xesb i/o controller hub skus note: intel ? 631xesb/632xesb i/o controller hub can be upgraded to full iamt solution intel ? 631xesb/632xesb i/o controller hub skus intel ? 6321esb i/o controller hub 1 (enterprise) intel ? 6311esb i/o controller hub 1 1st x4 pci express* yes yes 2nd x4 pci express yes yes 2 x1 pci express (1st pair) yes yes 2 x1 pci express (2nd pair) yes yes pci-x* yes yes 6 sata yes yes dual gbe yes no intel ? i/o acceleration technology yes no serdes yes no
intel ? 631xesb/632xesb i/o controller hub datasheet 49 signal descriptions 2 signal descriptions this chapter provides a detailed description of each signal. the signals are arranged in functional groups according to their associated interface. the ?#? symbol at the end of the signal name indicates that the active, or asserted state occurs when the signal is at a low voltage level. when ?#? is not present, the signal is asserted when at the high voltage level. the following notations are used to describe the signal type: iinput pin ooutput pin od open drain output pin i/o bi-directional input/output pin i/od bi-directional, open drain input/output signal. oc open collector output pin a-in analog input pin a-out analog output pin t/s tri-state is a bi-directional, tri-state input/output pin.
50 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions figure 2-1. intel ? 631xesb/632xesb i/o controller hub interface signals block diagram (sheet 1 of 3) ad[31:0] cbe[3:0]# devsel # frame# gnt[3:0]# gnt[4]# / gpio[48] gnt[5]# / gpo[17] gnt[6]# / gpo[16] irdy# par pciclk pcirst # perr# plock# pltrst# pme# req[3:0]# req[4]# / gpi[40] req[5]# / gpi[1] req[6]# / gpi[0] serr# stop# trdy# pci interface esi esitxp[3:0],esitxn [3:0] esirxp[3:0], esirxn [3:0] esiclk 100p,esiclk 100n esiicompi esidcac esircompo pci express* interface pe0tp[3:0], pe0tn[3:0 ] pe0rp[3:0], pe0rn[3:0 ] pe1tp[3:0], pe1tn[3:0 ] pe1rp[3:0], pe1rn[3:0 ] pe2tp[3:0], pe2tn[3:0 ] pe2rp[3:0], pe2rn[3:0 ] pe4tp[7:0], pe4tn[7:0 ] pe4rp[3:0], pe4rn[3:0 ] peclkp , peclkn peicompi percompo extintr # hpclk hpdta pci/pci-x bus interface px133en pxad[31:0] pxcbe[3:0]# pxdevsel # pxframe # pxgnt[5:0]# pxirdy # pxm66en pxpar pxpcirst # pxpcixcap pxpclki pxpclko [6:0] pxperr # pxplock # pxpme# pxpwrok pxreq[5:0]# pxserr # pxstop # pastrap 0 pxtrdy # rstin# pci/pci-x bus interface 64-bit extension pxack 64# pxad[63:32] pxcbe[7:4]# pxpar64 pxreq 64# intel? 631xesb / 632xesb i/o controller hub a20m# cpuslp # ferr# ignne # init# init3_3v# intr nmi smi# stpclk # rcin# a20gate cpupwrgd / gpo [49] processor interface
intel ? 631xesb/632xesb i/o controller hub datasheet 51 signal descriptions figure 2-1. intel ? 631xesb/632xesb i/o controller hub interface signals block diagram (sheet 2 of 3) thrm# thrmtrip # sys_ reset# rsmrst # slp_s3# slp_s4# slp_s5# pwrok pwrbtn# ri# wake# sus_stat# / lpcpd# susclk vrmpwrgd dcs1# dcs3# da[2:0] dd[15:0] ddreq ddack# dior# dwstb / rdmardy # diow#/ dstop iordy (drstb / wdmardy# ) ide interface power mgnt . interrupt interface serirq pirq[d:a]# pirq[h:e]# / gpio[5:2] ideirq pxirq[15:0]# sata[0]gp / gpi [26] sata[3:1]gp / gpi [31:29] sata[5:4]gp / gpio[13:12] sata[5:0]rxp,sata[5:0]rxn sata[5:0]txp,sata[5:0]txn sata_clkp, sata_clkn sataled# satarbias , satarbias # sdataout 0/ gpo[23], sdataout 1/ gpio[32] sload/ gpo[21] sclk/ gpo[20] serial ata interface pci/pci-x hot plug interface hpx_sic/ hxpwrled2# hpx_sid/ hxpcixcap 1_2 hpx_sil#/ hxclken_1# hpx_slot[0]/ hxmrl_2# hpx_slot[1]/ hxprsnt 1_1# hpx_slot[3:0] hpx_slot[3]/ hxpwrled1# hpx_soc/ hxpcixcap 2_2 hpx_sod/ hxclken_2 hpx_sol/ hxbutton 2# hpx_solr/ hxatnled2# hxatnled _1# hxpwren _1 pxgnt[3]#/ hxpwren _2 pxgnt[4]#/ hxbusen_2# pxgnt[5]#/ hxbusen_1# pxirq[10]#/ hxpcixcap 1_1 pxirq[11]#/hxm66en_1 pxirq[12]#/hxm66en_2 pxirq[13]#/ hxpwrflt_2# pxirq[14]#/ hxpwrflt_1# pxirq[15]#/ hxmrl1# pxirq[8]#/ hxbutton_1# pxirq[9]#/ hxpcixcap2_1 pxreq[3]#/ hxprsnt2_1# pxreq[4]#/ hxprsnt2_2# pxreq[5]#/ hxprsnt1_2# seicompi ser_clk_in sercompo serp0, sern0 setp0, setn0 serp1, sern1 setp1, setn1 kumeran and serdes interface rcomp hpx_sic hpx_sid hpx_sil# hpx_slot[3:0] hpx_soc hpx_sod hpx_sol hpx_ solr hpx_ prst#/ hpx_rst1# hpx_rst2# link_[1:0] intel? 631xesb / 632xesb i/o controller hub
52 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions figure 2-1. intel ? 631xesb/632xesb i/o controller hub interface signals block diagram (sheet 3 of 3) usb usbp[7:0]p,usbp[7:0]n oc[3:0]# oc[5:4]# / gpio[10:9] oc[7:6]# / gpio[15:14] usbrbias #, usbrbias rtcx1 rtcx2 rtcrst # rtc mi sc. signals intvrmen spkr lan_ pwr_ good pe_ wake# sdp0[2:0],sdp1[2:0],sdp2[7:0] sdp3_0/led0_0 sdram_ad12/sdp3_1/led0_1 sdram_ba0/ sdp3_2/led0_2 sdram_ba1/ sdp3_3/ led0_3 sdp3_4/led1_0 sdram_a9/sdp3_5/led1_1 sdram_a10/sdp3_6/led1_2 sdram_a11/sdp3_7/led1_3 npecfg specfg perst# strap_[7:4, 0] strap_[2, 1] strap_3 lan0_dis# lan1_dis# general purpose i/o gpio[34:32, 28:27, 25:24] gpi[41:40, 31:29, 26, 15::0] gpo[49:48, 23, 21:16] flash eeprom interface flsh_si flsh_so flsh_sck flsh_ce# ee_sk ee_di ee_do ee_cs# intruder # smlink[ 1:0] tck tdi tdo tms trst# jtag interface lpc interface smbus interface acz_rst# acz_sync acz_bit_clk acz_ sdout acz_sdin[2:0] ac '97 link firmware hub system mgnt. fwh[3:0] / lad[3:0] fwh[4] / lframe# lad[3:0] / fwh[3:0] lframe# / fwh[4] ldrq[0]#,ldrq[1]# / gpi[4 1] lpcpd# / sus_stat# flbsd[1:0] flbsintex[1:0] sclk sdta smbalert #/ gpi [ 11] smbalrt _[4:2] smbclk smbclk[4:0] smbd[ 4: 0] smbdata smbus[5], smbus[3:1] expansion bus interface ebus_ad[24:0] ebus_adv#/ ebus_ras# ebus_alat/ ebus_cke ebus_be_[1:0]# ebus_ce_[2:1]# ebus_clk_ 2 ebus_frst# ebus_oe#/ ebus_cas# ebus_we# r-232 interface rs232_cts rs232_dcd rs232_dsr rs232_dtr rs232_ri rs232_rts rs232_sin rs232_sout clk14 clk48 clocks intel? 631xesb / 632xesb i/o controller hub
intel ? 631xesb/632xesb i/o controller hub datasheet 53 signal descriptions 2.1 enterprise south bridge interface (esi) to host controller 2.2 pci express* interface table 2-1. enterprise south bridge interface signals name type description esitxp[3:0], esitxn[3:0] o enterprise south bridge interface differential transmit pairs esirxp[3:0], esirxn[3:0] i enterprise south bridge interface differential receive pair esiclk100p, esiclk100n i 100 mhz differential clock: these signals are used to run the enterprise south bridge interface. runs at 100 mhz. esiicompi i enterprise south bridge interface current compensation input : used to determine the bias current. tied with esircompo and pulled up to vcc1_5 through a resistor on the system board. esircompo o enterprise south bridge interface impedance compensation output: used to determine the impedance. tied wi th esiicompi and pulled up to vcc1_5 through a resistor on the system board. esidcac i esi da cac mode: this signal is used to enable esi interface to standard pci express signaling level (ac) or in half voltage (dc) mode. esidcac = 1 (pulled up to vcc1_5) ==> ac mode (default) esidcac = 0 (pulled down to vss) ==> dc mode table 2-2. pci express* root port signals name type description pe0tp[3:0], pe0tn[3:0] o pci express root port differential transmit pairs. pe0rp[3:0], pe0rn[3:0] i pci express root port differential receive pairs. table 2-3. pci express* downstream signals name type description pe1tp[3:0], pe1tn[3:0] o pci express downstream port 1 differential transmit pairs. pe1rp[3:0], pe1rn[3:0] i pci express downstream port 1 differential receive pairs. pe2tp[3:0], pe2tn[3:0] o pci express downstream port 2 differential transmit pairs. pe2rp[3:0], pe2rn[3:0] i pci express downstream port 2 differential receive pairs. extintr# i hot-plug controller interrupt pin. hpclk i/od hot-plug bus clock: sm bus compatible clock pin. external pull-up required. hpdta i/od hot-plug bus data: sm bus compatible data pin. external pull-up required.
54 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions 2.3 pci interface note: for all the pci signals, they are 5v tolerant except pciclk and pme#. table 2-4. pci express* upstream signals name type description pe4tp[7:0], pe4tn[7:0] o pci express upstream port differential transmit pairs. pe4rp[7:0], pe4rn[7:0] i pci express upstream port differential receive pairs. peclkp, peclkn i pci express upstream port clock in : a 100 mhz clock input used as the reference clock for this interface. peicompi i pci express upstream port current compensation input : tied with perocmpo and pulled up to vcc1_5 through a resistor on the system board. percompo i pci express upstream port impedance compensation output: used for current compensation and rx termination compensation. tied with peicompi and pulled up to vcc1_5 through a resistor on the system board. table 2-5. pci interface signals (sheet 1 of 3) name type description ad[31:0] i/o pci address/data : ad[31:0] is a multiplexed address and data bus. during the first clock of a transaction, ad[31:0] contain a physical address (32 bits). during subsequent clocks, ad[31:0] contain data. the intel ? 631xesb/632xesb i/o controller hub will drive all 0s on ad[31:0] during the address phase of all pci special cycles. cbe#[3:0] i/o bus command and byte enables : the command and byte enable signals are multiplexed on the same pci pins. during the address phase of a transaction, cbe[3:0]# define the bus command. during the data phase cbe[3:0]# define the byte enables. cbe[3:0]#command type 0 0 0 0interrupt acknowledge 0 0 0 1special cycle 0 0 1 0i/o read 0 0 1 1i/o write 0 1 1 0memory read 0 1 1 1memory write 1 0 1 0configuration read 1 0 1 1configuration write 1 1 0 0memory read multiple 1 1 1 0memory read line 1 1 1 1memory write and invalidate all command encodings not shown are reserved. the intel ? 631xesb/632xesb i/o controller hub does not decode reserved values, and therefore will not respond if a pci master generates a cycle using one of the reserved values. devsel# i/o device select : the intel ? 631xesb/632xesb i/o controller hub asserts devsel# to claim a pci transaction. as an output, the intel ? 631xesb/632xesb i/o controller hub asserts devsel# when a pci master peripheral attempts an access to an internal intel ? 631xesb/632xesb i/o controller hub address or an address destined esi (main memory). as an input, devsel# indicates the response to an intel ? 631xesb/ 632xesb i/o controller hub-initiated transaction on the pci bus. devsel# is tri-stated from the leading edge of pcirst#. devsel# remains tri-stated by the intel ? 631xesb/632xesb i/o controller hub until driven by a target device.
intel ? 631xesb/632xesb i/o controller hub datasheet 55 signal descriptions frame# i/o cycle frame: the current initiator drives frame# to indicate the beginning and duration of a pci transaction. while the initiator asserts frame#, data transfers continue. when the initiator negates frame#, the transaction is in the final data phase. frame# is an input to the intel ? 631xesb/632xesb i/o controller hub when the intel ? 631xesb/632xesb i/o controller hub is the target, and frame# is an output from the intel ? 631xesb/632xesb i/o controller hub when the intel ? 631xesb/ 632xesb i/o controller hub is the initiator. frame# remains tri-stated by the intel ? 631xesb/632xesb i/o controller hub until driven by an initiator. gnt[3:0]# gnt[4]# / gpio[48] gnt[5]# / gpo[17]# gnt[6]# / gpo[16]# o pci grants : the intel ? 631xesb/632xesb i/o controller hub supports up to 7 masters on the pci bus. the gnt[4]# pin can instead be used as a gpio. note: gnt[6] is sampled at the rising edge of pwrok as a functional strap. see section 2.28 for more details. irdy# i/o initiator ready : irdy# indicates the intel ? 631xesb/632xesb i/o controller hub's ability, as an initiator, to complete the current data phase of the transaction. it is used in conjunction with trdy#. a data phase is completed on any clock both irdy# and trdy# are sampled asserted. during a write, irdy# indicates the intel ? 631xesb/ 632xesb i/o controller hub has valid data present on ad[31:0]. during a read, it indicates the intel ? 631xesb/632xesb i/o controller hub is prepared to latch data. irdy# is an input to the intel ? 631xesb/632xesb i/o controller hub when the intel ? 631xesb/632xesb i/o controller hub is the target and an output from the intel ? 631xesb/632xesb i/o controller hub when the intel ? 631xesb/632xesb i/o controller hub is an initiator. irdy# remains tri-stated by the intel ? 631xesb/ 632xesb i/o controller hub until driven by an initiator. par i/o calculated/checked parity: par uses ?even? parity calculated on 36 bits, ad[31:0] plus c/be[3:0]#. ?even? parity means that the intel ? 631xesb/632xesb i/o controller hub counts the number of ones within the 36 bits plus par and the sum is always even. the intel ? 631xesb/632xesb i/o controller hub always calculates par on 36 bits regardless of the valid byte enables. the intel ? 631xesb/632xesb i/o controller hub generates par for address and data phases and only guarantees par to be valid one pci clock after the corresponding address or data phase. the intel ? 631xesb/632xesb i/o controller hub drives and tri-states par identically to the ad[31:0] lines except that the intel ? 631xesb/632xesb i/o controller hub delays par by exactly one pci clock. par is an output during the address phase (delayed one clock) for all intel ? 631xesb/632xesb i/o controller hub initiated transactions. par is an output during the data phase (delayed one clock) when the intel ? 631xesb/632xesb i/o controller hub is the initiator of a pci write tr ansaction, and when it is the target of a read transaction. intel ? 631xesb/632xesb i/o controller hub checks parity when it is the target of a pci write transaction. if a parity error is detected, the intel ? 631xesb/ 632xesb i/o controller hub will set the appropriate internal status bits, and has the option to generate an nmi# or smi#. pciclk i pci clock : this 33 mhz clock provides timing for all transactions on the pci bus. pcirst# o pci reset: this is a pci bus reset signal. it is a logical or of the primary interface pltrst# signal and the state of the secondary bus reset bit of the bridge control register (d30:f0:3eh, bit 6). note: pcirst# is in the resume well. perr# i/o parity error : an external pci device drives perr# when it receives data that has a parity error. the intel ? 631xesb/632xesb i/o controller hub drives perr# when it detects a parity error. the intel ? 631xesb/632xesb i/o controller hub can either generate an nmi# or smi# upon detecting a parity error (either detected internally or reported via the perr# signal). plock# i/o pci lock : this signal indicates an exclusive bus operation that may require multiple transactions to complete. the intel ? 631xesb/632xesb i/o controller hub asserts plock# when it performs non-exclusive transactions on the pci bus. plock# is ignored when pci masters are granted the bus. table 2-5. pci interface signals (sheet 2 of 3) name type description
56 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions pltrst# o platform reset: the intel ? 631xesb/632xesb i/o controller hub asserts pltrst# to reset devices that reside on the pci bus. the intel ? 631xesb/632xesb i/o controller hub asserts pltrst# during power-up and when software initiates a hard reset sequence through the reset control register (i/o register cf9h). the intel ? 631xesb/ 632xesb i/o controller hub drives pltrst# inactive a minimum of 1 ms after both pwrok and vrmpwrgd are driven high. the intel ? 631xesb/632xesb i/o controller hub drives pltrst# active a minimum of 1 ms when initiated through the reset control register (i/o register cf9h). note: pltrst# is in the resume power plane. pme# i/od pci power management event : pci peripherals drive pme# to wake the system from low-power states s1, s3, s4 and s5. pme# assertion can also be enabled to generate an sci from the s0 state. note: in some cases the intel ? 631xesb/632xesb i/o controller hub may drive pme# active due to an internal wake event. note: pme# is in the resume power plane and it has internal pull-up. req[3:0]# req[4]# / gpi[40] req[5]# / gpi[1] req[6]# / gpi[0] i pci requests : the intel ? 631xesb/632xesb i/o controller hub supports up to 7 masters on the pci bus. the req[4]#, req[5]#, and req[6]# pins can instead be used as a gpi. serr# i/od system error : serr# can be pulsed active by any pci device that detects a system error condition. upon sampling serr# active, the intel ? 631xesb/632xesb i/o controller hub has the ability to generate an nmi, smi#, or interrupt. stop# i/o stop : stop# indicates that the intel ? 631xesb/632xesb i/o controller hub, as a target, is requesting the initiator to stop the current transaction. stop# causes the intel ? 631xesb/632xesb i/o controller hub, as an initiator, to stop the current transaction. stop# is an output when the intel ? 631xesb/632xesb i/o controller hub is a target and an input when the intel ? 631xesb/632xesb i/o controller hub is an initiator. trdy# i/o target ready : trdy# indicates the intel ? 631xesb/632xesb i/o controller hub's ability as a target to complete the current da ta phase of the transaction. trdy# is used in conjunction with irdy#. a data phase is completed when both trdy# and irdy# are sampled asserted. during a read, trdy# indicates that the intel ? 631xesb/ 632xesb i/o controller hub, as a target, has placed valid data on ad[31:0]. during a write, trdy# indicates the intel ? 631xesb/632xesb i/o controller hub, as a target, is prepared to latch data. trdy# is an input to the intel ? 631xesb/632xesb i/o controller hub when the intel ? 631xesb/632xesb i/o controller hub is the initiator and an output from the intel ? 631xesb/632xesb i/o controller hub when the intel ? 631xesb/632xesb i/o controller hub is a target. trdy# is tri-stated from the leading edge of pcirst#. trdy# remains tri-stated by the intel ? 631xesb/632xesb i/ o controller hub until driven by a target. table 2-5. pci interface signals (sheet 3 of 3) name type description
intel ? 631xesb/632xesb i/o controller hub datasheet 57 signal descriptions 2.4 pci/pci-x* bus interface table 2-6. pci/pci-x* bus interface signals (sheet 1 of 2) signal type description px133en i only relevant when intel ? 631xesb/632xesb i/o controller hub samples pxpcixcap at a level indicating 133 mhz pci-x* capability. pci-x 133 mhz enable : sets the maximum frequency capability of a pci-x bus to either 100 mhz or 133 mhz. this pin, when high, allows the pci-x segment to run at a maximum 133 mhz when in pci-x mode. when low, the pci-x segment is limited to a maximum frequency of 100 mhz when in pci-x mode. pxad[31:0] i/o pci address/data: these signals are a multiplexed address and data bus. during the address phase or phases of a transaction, the initiator drives a physical address on pxad[31:0]. during the data phases of a transaction, the initiator drives write data, or the target drives read data. pxcbe[3:0]# i/o bus command and byte enables: these signals are a multiplexed command field and byte enable field. during the address phase or phases of a transaction, the initiator drives the transaction type on pxcbe[3:0]#. for both read and write transactions, the initiator drives byte enables on pxcbe[3:0]# during the data phases. pxdevsel# i/o device select: intel ? 631xesb/632xesb i/o controller hub asserts pxdevsel# to claim a pci transaction. as a target, intel ? 631xesb/632xesb i/o controller hub asserts pxdevsel# when a pci master peripheral attempts an access to an internal address or an address destined for the pci express interface. as an initiator, pxdevsel# indicates the response to a pci express-to-pci-x bridge- initiated transaction on the pci bus. px devsel# is tri-stated from the leading edge of pxpcirst#. pxdevsel# remains tri-stated by intel ? 631xesb/632xesb i/o controller hub until driven as a target. pxframe# i/o frame: pxframe# is driven by the initiator to indicate the beginning and duration of an access. while pxframe# is asserted, data transfers continue. when pxframe# is negated, the transaction is in the final data phase. pxgnt[5:0]# o pci grants: bus grant output corresponding to request inputs 5 through 0 from intel ? 631xesb/632xesb i/o controller hub arbiter. this signal indicates that an initiator can start a transaction on the pci bus. pxirdy# i/o initiator ready: pxirdy# indicates the ability of the initiator to complete the current data phase of the transaction. a data phase is completed when both pxirdy# and pxtrdy# are sampled asserted. pxm66en i/o only relevant when hot-plug mode is disabled (hpx_slot[3] = 0) or when in one-slot-no-glue hot-plug mode (hpx_slot[3:0] = 1111). 66 mhz enable: this input signal from the pci bus indicates the speed of the pci bus. if it is high, the bus speed is 66 mhz; if it is low, the bus speed is 33 mhz. this signal will be used to generate the appropriate clock (33 mhz or 66 mhz) on the pci bus. hot-plug mode enabled: not used. the pci bus will power up as 33 mhz pci and intel ? 631xesb/632xesb i/o controller hub will drive this pin low. also, if software ever writes 00 to the pfreq register, intel ? 631xesb/632xesb i/o controller hub will drive this pin low. hot-plug mode disabled: controls max frequency (33 mhz or 66 mhz) of the pci segment when running in conventional pci mode: 0 = 33 mhz pci 1 = 66 mhz pci pxpar i/o parity: even parity calculated on 36 bits (pxad[31:0] plus pxcbe[3:0]#). it is calculated on all 36 bits, regardless of the valid byte enables. it is driven identically to the pxad[31:0] lines, except it is delayed by exactly one pci clock. pxpcirst# o pci reset: intel ? 631xesb/632xesb i/o controller hub asserts pxpcirst# to reset devices that reside on the secondary pci bus. intel ? 631xesb/632xesb i/o controller hub asserts pxpcirst# due to one of the following events: ? rstin# is asserted. ?pwrok is asserted. ? the pci reset (bit 6) in the bridge control register is set. connect to the rst# pin of the pci slot(s) in non-hot-plug mode.
58 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions pxpcixcap i only relevant when hot-plug mode is disabled (hpx_slot[3] = 0) or when in one-slot-no-glue hot-plug mode (hpx_slot[3:0] = 1111). pci-x capable: this signal indicates whether all devices on the pci bus are pci-x devices, so that intel ? 631xesb/632xesb i/o controller hub can switch into pci-x mode. hot-plug mode disabled or one-slot-no-glue hot-plug mode: connect directly to the pcixcap pin on the pci slot. refer to the latest pci-x specification. hot-plug mode enabled: not used, except for one-slot-no glue hot-plug mode. if in one-slot-no glue hot-plug mode, connect to pci slot pcixcap pin. pxpclki i pci clock in: this signal is connected to the pxpclko[6] output. pxpclko[6:0] o pci clock output: these signals provide 33/66/100/133 mhz clock for a pci/ pci-x device. pxpclko[0] goes to slot or device #1, pxpclko[1] goes to slot or device #2, and so forth, pxpclko[6] is connected to the pxpclki input. unused pci clock outputs should be turned off by bios and left as no connects on the system board. pxperr# i/o parity error: pxperr# is driven by an external pci device when it receives data that has a parity error. driven by intel ? 631xesb/632xesb i/o controller hub when, as an initiator it detects a parity error during a read transaction and as a target during write transactions. pxplock# o pci lock: this signal indicates an exclusive bus operation and may require multiple transactions to complete. intel ? 631xesb/632xesb i/o controller hub asserts pxplock# when it is doing exclusive transactions on the pci bus. pxplock# is ignored when pci masters are granted the bus. intel ? 631xesb/ 632xesb i/o controller hub does not propagate locked transactions upstream. pxpme# i pci power management event: pci bus power management event signal. this is a shared open drain signal from all the pci cards on the corresponding pci bus segment. this is a level sensitive signal that will be converted to a pme event on the pci express bus. pxpwrok i power supply ok : when high indicates that the system power supply has stabilized. when low, asynchronously resets the pci express bridge/switch. some of the strap pins on the intel ? 631xesb/632xesb i/o controller hub are sampled on the rising edge of this signal. this signal can be used to gate the starting of the pci express clocks, since it is required that all voltages supplied to the intel ? 631xesb/632xesb i/o controller hub be valid and stable prior to starting the pci express clocks. pxreq[5:0]# i pci request: request input into intel ? 631xesb/632xesb i/o controller hub arbiter. pxserr# i system error: pxserr# can be pulsed active by any pci device that detects a system error condition except intel ? 631xesb/632xesb i/o controller hub. intel ? 631xesb/632xesb i/o controller hub samples pxserr# as an input and conditionally forwards it to the pci express interface. pxstop# i/o stop: pxstop# indicates that the target is requesting an initiator to stop the current transaction. pastrap0 i strap: intel test mode signals: 1 = reserved 0 = normal operation pxtrdy# i/o target ready: pxtrdy# indicates the ability of the target to complete the current data phase of the transaction. a data phase is completed when both pxtrdy# and pxirdy# are sampled asserted. pxtrdy# is tri-stated from the leading edge of pxpcirst#. pxtrdy# remains tri-stated by intel ? 631xesb/ 632xesb i/o controller hub until driven as a target. rstin# i reset in : when asserted, this signal asynchronously resets the intel ? 631xesb/ 632xesb i/o controller hub logic and asserts pxpcirst# active output. this signal is typically connected to the pltrst# output of the intel ? 631xesb/ 632xesb i/o controller hub. rcomp i pci rcomp : analog compensation pin for pci. connect to a pull-down resistor to ground. nominally 0.75vrcomp table 2-6. pci/pci-x* bus interface signals (sheet 2 of 2) signal type description
intel ? 631xesb/632xesb i/o controller hub datasheet 59 signal descriptions 2.5 pci/pci-x* bus interface 64-bit extension 2.6 pci/pci-x hot-plug interface table 2-7. pci bus interface 64-bit extension interface signals signal type description pxack64# i/o pci interface acknowledge 64-bit transfer: this signal is asserted by the target only when pxreq64# is asserted by the initiator. it indicates the target?s ability to transfer data using 64 bits. it has the same timing as pxdevsel#. pxad[63:32] i/o pci address/data: these signals are a multiplexed address and data bus. this bus provides an additional 32 bits to th e pci bus. during the data phases of a transaction, the initiator drives the upper 32 bits of 64-bit write data, or the target drives the upper 32 bits of 64-bit read data, when pxreq64# and pxack64# are both asserted. pxcbe[7:4]# i/o bus command and byte enables (upper 4 bits): these signals are a multiplexed command field and byte enab le field. for both read and write transactions, the initiator will drive byte enables for the pxad[63:32] data bits on pxcbe[7:4]# during the data phases when pxreq64# and pxack64# are both asserted. pxpar64 i/o pci interface upper 32-bits parity: this signal carries the even parity of the 36 bits of pxad[63:32] and pxcbe[7:4] # for both address and data phases. pxreq64# i/o pci interface request 64-bit transfer: this signal is asserted by the initiator to indicate that the initiator is requesti ng a 64-bit data transfer. it has the same timing as pxframe#. when the intel ? 631xesb/632xesb i/o controller hub is the initiator, this signal is an output. when the intel ? 631xesb/632xesb i/o controller hub is the target, this signal is an input. table 2-8. general hot-plug interface signals ? all hot-plug modes signal type description hpx_slot[3] i enable/disable pci hot-plug mode : 1 = hot-plug mode enabled 0 = hot-plug mode disabled hpx_slot[2:0] i hot-plug mode / # of pci slots : used in conjunction with hpx_slot[3] signal to determine pci hot-plug mode and number of pci slots on a bus segment. hpx_slot[3:0] = hot-plug mode enable/disable, # of pci slots 0000 = hot-plug disabled, 1 slot (optional). 0001 = hot-plug disabled, 2 slots (optional). 0010 = hot-plug disabled, 3 slots (optional). 0011 = hot-plug disabled, 4 slots (optional). 0100 = hot-plug disabled, 5 slots (optional). 0101 = hot-plug disabled, 6 slots (optional). 0110 = hot-plug disabled, 7 slots (optional). 0111 = hot-plug disabled, 8 slots (optional). 1000 = reserved. 1001 = hot-plug enabled, 1 slot (parallel mode). 1010 = hot-plug enabled, 2 slots (parallel mode). 1011 = hot-plug enabled, 3 slots (serial mode). 1100 = hot-plug enabled, 4 slots (serial mode). 1101 = hot-plug enabled, 5 slots (serial mode). 1110 = hot-plug enabled, 6 slots (serial mode). 1111 = hot-plug enabled, 1-slot-no-glue (parallel mode).
60 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions table 2-9. serial mode hot-plug signals ? 3 to 6 slots signal type description hpx_prst#/ hpx_rst1# o primary bus reset out (hpx_prst#): this is asserted whenever the upstream pci express ports of the intel ? 631xesb/632xesb i/o controller hub go through a reset, even if hot-plug is disabled. resets the slot interface logic in hot-plug serial mode. hpx_sic o serial input clock: this signal is normally high. it pulses low to shift external serial input shift register data one bit position. (the shift registers should be similar to standard ?74x165? series.) hpx_sid i serial input data: data shifted in from external logic on hpx_sic. hpx_sil# o serial input load: this signal is normally high. it pulses low to synchronously parallel load external serial input shift registers on the next rising edge of hpx_sic. hpx_slot[3:0] i hot-plug mode enable / # of pci slots: used to enable/disable hot- plug mode and to determine number of hot-plug slots. hpx_slot[3:0]: 1011 = hot-plug enabled, 3 slots (serial mode). 1100 = hot-plug enabled, 4 slots (serial mode). 1101 = hot-plug enabled, 5 slots (serial mode). 1110 = hot-plug enabled, 6 slots (serial mode). hpx_soc o serial output clock: this signal is normally high. it pulses low to shift internal serial output shift register data one bit position. (the shift registers should be similar to standard ?74x164? series). hpx_sod o serial output data: data is shifted out to external logic on hpx_soc. hpx_sol o serial output non-reset latch load: this signal is normally high. it pulses low to clock external latches (power-enable, clock-enable, slot bus- enable, and led latches). the high edge acts as the clock. hpx_solr o serial output reset latch load: this signal is normally high. it pulses high to clock external latches (reset latches) reading the serial output shift registers. the high edge acts as the clock. table 2-10. pci-x* parallel mode hot-plug signals ? 1 to 2 slots (sheet 1 of 4) signal type description hpx_prst#/ hpx_rst1# o slot 1 reset: this is the slot 1 reset in the parallel hot-plug mode. connected to the rst# pin of the first pci hot-plug slot. used when in 1-slot-no-glue, single-slot or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1111, 1001 or 1010). hpx_rst2# o slot 2 reset : this is the slot 2 reset in the parallel hot-plug mode. connected to the rst# pin of the second pci hot-plug slot. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). hpx_sic/ hxpwrled2# o slot 2 power led : output signal connected to the power led corresponding to the second hot-plug slot, which is green in color. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). hpx_sid/ hxpcixcap1_2 i slot 2 pcixcap1 : determines if the first hot-plug slot is pci-x* capable, and if so, whether it can operate at 133 mhz. pcixcap1 and pcixcap2 represent a decoded version of the three-state pcixcap pin present on each slot. pcixcap2 represents whether the pcixcap pin was ground or not ground (that is, pci-x capable), and pcixcap1 represents whether the pcixcap pin was ?low? (66 mhz only) or high (133 mhz capable). the system initially powers up at 33 mhz pci, and all hot-plug slots are scanned by firmware. if the system is capable, the bus is reset to run in the appropriate pci-x mode. these pins are used only in dual-slot parallel hot- plug mode (hpx_slot[3:0] = 1010).
intel ? 631xesb/632xesb i/o controller hub datasheet 61 signal descriptions hpx_sil#/ hxclken_1# o slot 1 clock enable: clock enable signals that connect the pci clock signals of the first pci slot to the system bus pci bus via fet isolation switches. only used when in single-slot or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1001 or 1010). hpx_slot[0]/ hxmrl_2# i slot 2 manual retention latch: optional. manually operated retention latch sensor input. a logic low input that is connected directly to the mrl sensor on the second hot-plug slot. when asserted it indicates that the mrl latch is closed. if a platform does not support mrl sensors, this must be wired to a low logic level (mrl closed). only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). hpx_slot[1]/ hxprsnt1_1# i slot 1 present1#: input signal (optional). used in conjunction with hxprsnt2_1# to indicate to the intel ? 631xesb/632xesb i/o controller hub whether an add-on card is installed in the first hot-plug slot and its power requirements. this signal is directly connected to the present bits on the pci/pci-x add-on card. only used when in one slot no glue mode, single-slot or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1111, 1001 or 1010). hpx_slot[3:0] i hot-plug mode enable / # of pci slots: used to enable/disable hot- plug mode and to determine number of hot-plug slots. hpx_slot[3:0]: 1111 = hot-plug enabled, one-slot-no-glue hot-plug mode. 1001 = hot-plug enabled, 1 slot (parallel mode) 1010 = hot-plug enabled, 2 slots (parallel mode) hpx_slot[3]/ hxpwrled1# o slot 1 power led: output signal connected to the green power led corresponding to the first hot-plug slot. only used when in one-slot-no-glue, single-slot parallel, or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1111, 1001, or 1010). hpx_soc/ hxpcixcap2_2 i slot 2 pcixcap2 : determines if the second hot-plug slot is pci-x capable, and if so, whether it can operate at 133 mhz. pcixcap1 and pcixcap2 represent a decoded version of the three-state pcixcap pin present on each slot. pcixcap2 represents whether the pcixcap pin was ground or not ground (that is, pci-x capable), and pcixcap1 represents whether the pcixcap pin was ?low? (66 mhz only) or high (133 mhz capable). the system initially powers up at 33 mhz pci, and all hot-plug slots are scanned by firmware. if the system is capable, the bus is reset to run in the appropriate pci-x mode. these pins are used only in the dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). hpx_sod/ hxclken_2 o slot 2 clock enable : clock enable signals that connect the pci clock signals of the second pci slot to the system bus pci bus via fet isolation switches. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). hpx_sol/ hxbutton2# o slot 2 attention button : optional. attention button input signal connected to the second hot-plug slot?s attention button. when low, indicates that the operator has requested attention. if attention button is not implemented, then this input must be wired to a high logic level. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). hpx_solr/ hxatnled2# o slot 2 attention led : control for attention led of the second hot-plug slot, which is yellow or amber in color. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). hxatnled_1# o slot 1 attention led: control for attention led of the first hot-plug slot, which is yellow or amber in color. only used when in one-slot-no-glue, single-slot parallel, or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1111, 1001, or 1010). hxpwren_1 o slot 1 power enable: connected to slot 1 on-board power controller to regulate current and voltage flow of the pci slot. only used when in one-slot-no-glue, single-slot parallel, or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1111, 1001, or 1010). pxgnt[3]#/ hxpwren_2 o slot 2 power enable: connected to slot 2 on-board power controller to regulate current and voltage flow of the pci slot. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). table 2-10. pci-x* parallel mode hot-plug signals ? 1 to 2 slots (sheet 2 of 4) signal type description
62 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions pxgnt[4]#/ hxbusen_2# o slot 2 bus enable: bus enable signals that connect the pci bus signals of the second pci slot to the system bus pci bus via fet isolation switches. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). pxgnt[5]#/ hxbusen_1# o slot 1 bus enable: bus enable signals that connect the pci bus signals of the first pci slot to the system bus pci bus via fet isolation switches. only used when in single-slot or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1001 or 1010). pxirq[10]#/ hxpcixcap1_1 i slot 1 pcixcap1: determines if the first hot-plug slot is pci-x capable, and if so, whether it can operate at 133 mhz. pcixcap1 and pcixcap2 represent a decoded version of the three-state pcixcap pin present on each slot. pcixcap2 represents whether the pcixcap pin was ground or not ground (that is, pci-x capable), and pcixcap1 represents whether the pcixcap pin was ?low? (66 mhz only) or high (133 mhz capable). the system initially powers up at 33 mhz pci, and all hot-plug slots are scanned by firmware. if the system is capable, the bus is reset to run in the appropriate pci-x mode. these pins are used only in the single-slot and dual-slot parallel hot-plug mode. pxirq[11]#/ hxm66en_1 i slot 1 m66en: determines if an add-in card is capable of running at 66 mhz in conventional pci mode for the first hot-plug slot. only used when in one-slot-no-glue, single-slot parallel, or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1111, 1001, or 1010). pxirq[12]#/ hxm66en_2 i slot 2 m66en: determines if an add-in card is capable of running at 66 mhz in conventional pci mode for the second hot-plug slot. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). pxirq[13]#/ hxpwrflt_2# i hot-plug parallel mode only - (hxpwrflt_2#): power controller fault indication for over-current / under-voltage condition for the second hot- plug slot. when asserted, intel ? 631xesb/632xesb i/o controller hub, if enabled, immediately asserts reset to the slot and disconnects the slot from the bus. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). pxirq[14]#/ hxpwrflt_1# i slot 1 power fault: power controller fault indication for over-current / under-voltage condition for the first hot-plug slot. when asserted, intel ? 631xesb/632xesb i/o controller hub, if enabled, immediately asserts reset to the slot and disconnects the pci slot from the bus. only used when in one-slot-no-glue, single-slot parallel, or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1111, 1001, or 1010). pxirq[15]#/ hxmrl1# i slot 1 manual retention latch: optional. manually operated retention latch sensor input. a logic low input that is connected directly to the mrl sensor on the first hot-plug slot. when asserted it indicates that the mrl latch is closed. if a platform does not support mrl sensors, this must be wired to a low logic level (mrl closed). only used when in one-slot-no-glue, single-slot parallel, or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1111, 1001, or 1010). pxirq[8]#/ hxbutton_1# i slot 1 attention button: optional. attention button input signal connected to the first hot-plug slot?s attention button. when low, indicates that the operator has requested attention. if attention button is not implemented, then this input must be wired to a high logic level. only used when in single-slot or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1001 or 1010). pxirq[9]#/ hxpcixcap2_1 i slot 1 pcixcap2 : determines if the first hot-plug slot is pci-x capable, and if so, whether it can operate at 133 mhz. pcixcap1 and pcixcap2 represent a decoded version of the three-state pcixcap pin present on each slot. pcixcap2 represents whether the pcixcap pin was ground or not ground (that is, pci-x capable), and pcixcap1 represents whether the pcixcap pin was ?low? (66 mhz only) or high (133 mhz capable). the system initially powers up at 33 mhz pci, and all hot-plug slots are scanned by firmware. if the system is capable, the bus is reset to run in the appropriate pci-x mode. these pins are used only in the single-slot and dual-slot parallel hot-plug mode. table 2-10. pci-x* parallel mode hot-plug signals ? 1 to 2 slots (sheet 3 of 4) signal type description
intel ? 631xesb/632xesb i/o controller hub datasheet 63 signal descriptions 2.7 interrupt interface note: pirq and ideirq are 5v tolerant and serirq is 3.3v tolerant. pxreq[3]#/ hxprsnt2_1# i slot 1 present2# : input signal (optional). used in conjunction with hxprsnt1_1# to indicate to intel ? 631xesb/632xesb i/o controller hub whether an add-on card is installed in the first hot-plug slot and its power requirements. this signal is directly connected to the present bits on the pci/pci-x add-on card. only used when in single-slot or dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1001 or 1010). pxreq[4]#/ hxprsnt2_2# i slot 2 present2# : input signal (optional). used in conjunction with hxprsnt1_2# to indicate to intel ? 631xesb/632xesb i/o controller hub whether an add-on card is installed in the second hot-plug slot and its power requirements. this signal is directly connected to the present bits on the pci/pci-x add-on card. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). pxreq[5]#/ hxprsnt1_2# i slot 2 present1# : input signal (optional). used in conjunction with hxprsnt2_2# to indicate to intel ? 631xesb/632xesb i/o controller hub whether an add-on card is installed in the second hot-plug slot and its power requirements. this signal is directly connected to the present bits on the pci/pci-x add-on card. only used when in dual-slot parallel hot-plug mode (hpx_slot[3:0] = 1010). table 2-11. interrupt signals name type description ideirq i ide interrupt request: this interrupt input is connected to the ide drive. pirq[d:a]# i/od pci interrupt requests: in non-apic mode the pirqx# signals can be routed to interrupts 3, 4, 5, 6, 7, 9, 10, 11, 12, 14 or 15 as described in section 5.10.6 . each pirqx# line has a separate route control register. in apic mode, these signals are connected to the internal i/o apic in the following fashion: pirqa# is connected to irq16, pirqb# to irq17, pirqc# to irq18, and pirqd# to irq19. this frees the legacy interrupts. pirq[h:e]# / gpio[5:2] i/od pci interrupt requests: in non-apic mode the pirqx# signals can be routed to interrupts 3, 4, 5, 6, 7, 9, 10, 11, 12, 14 or 15 as described in section 5.10.6 . each pirqx# line has a separate route control register. in apic mode, these signals are connected to the internal i/o apic in the following fashion: pirqe# is connected to irq20, pirqf# to irq21, pirqg# to irq22, and pirqh# to irq23. this frees the legacy interrupts. if not needed for interrupts, these signals can be used as gpio inputs. serirq i/o serial interrupt request: this pin implements the serial interrupt protocol. pxirq[15:0]# i pci-x* interrupt requests: the pxirq# lines from pci interrupts pirq[a:d] can be routed to these interrupt lines. table 2-10. pci-x* parallel mode hot-plug signals ? 1 to 2 slots (sheet 4 of 4) signal type description
64 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions 2.8 kumeran and serdes interface 2.9 serial ata interface table 2-12. kumeran interface signals name type description serp0, sern0 a-in serdes and kumeran receive : port 0 receive. setp0, setn0 a-out serdes and kumeran transmit : port 0 transmit. serp1, sern1 a-in serdes and kumeran receive : port 1receive. setp1, setn1 a-out serdes and kumeran transmit : port 1transmit. ser_clk_in a-in reference clock in : this pin is driven by an external 62.5 or 25 mhz clock source. when intel ? 631xesb/632xesb i/o controller hub is connected to external single or dual phy, the 62.5 or 25 mhz clock may be generated and provided by the phy back to intel ? 631xesb/632xesb i/o controller hub. otherwise, a standalone oscillator should be used. frequency is selected by strapping at strap_2: when ?1?, 25 mhz; when ?0?: 62.5 mhz. seicompi a-in impedance compensation : used to control impedance compensation for mac interface. tied with sercompo and connect to vccse through a common resistor. sercompo a-out impedance compensation : used to control the impedance compensation for the mac interface. tied with seicompi and connect to vccse through a common resistor. link_[1:0] i link_[1:0] act as sig_det[1:0] that connect to the optical phy's respective signal detect pins. table 2-13. serial ata interface signals (sheet 1 of 2) name type description sata[0]gp / gpi[26] sata[3:1]gp / gpio[31:29] sata[5:4]gp / gpio[13:12] i serial ata general purpose: these are input pins which can be configured as interlock switches corresponding to sata ports 5-0. if interlock switches are not required, these pin can be configured as the listed gpio pins instead. sata[5:0]rxp sata[5:0]rxn i serial ata differential receive pairs: these are inbound high-speed differential signals from ports 5-0. sata[5:0]txp sata[5:0]txn o serial ata differential transmit pairs: these are outbound high-speed differential signals to ports 5-0. sata_clkp sata_clkn i 100 mhz differential clock: these signals are used to run the sata controller. runs at 100 mhz. this clock is permitted to stop during s3 (or lower) states. sataled# oc serial ata led: this is an open-collector output pin driven during sata command activity. it is to be connected to external circuitry that can provide the current to drive a platform led. when active, the led is on. when tri-stated, the led is off. satarbias satarbias# i serial ata resistor bias: these are analog connection points for an external resistor to ground. sdataout0 / gpo[23] o the sdataout0 signal carries output bits associated with disk drives in the target backplane. it is intended to control leds (for example, activity, fault, and locate leds). there are 3 output data bits for each driver. this pin repeatedly drives data in the following sequencing: drive 0, drive 1, drive 2, and drive 3. this pin may be optionally used as gpo[23]
intel ? 631xesb/632xesb i/o controller hub datasheet 65 signal descriptions 2.10 ide interface sdataout1 / gpio[32] o the sdataout1 signal carries output bits associated with disk drives in the target backplane. it is intended to control leds (for example, activity, fault, and locate leds). there are 3 output data bits for each driver. this pin repeatedly drives data in the following sequencing: drive 4, drive 5 followed by six 0's. this pin may be optionally used as gpio[32] sload/ gpo[21] o the sload signal indicates when the bit stream is ending and being restarted. sload is asserted on the last clock of a bit stream. after sload is set to 1, the next four bit positions on sload contain a vendor-specific pattern. following that, the initiator shall set sload to 0 until it wants to restart the bit stream. the vendor- specific bits are intended to communicate drive-independent information to the target. the vendor- specific bits may change on each bit stream. after power on, the initiator may set sload to 1 with the first rising edge of sclk. if sclk was already high and vendor-specific bit 0 is also set to 1, the target is not synchronized with the initiator during the first bit stream. the initiator should not set vendor-specific bit 0 to 1 during the first bit stream. the initiator should only set sload to 1 to restart a bit stream during the third bit position for a drive. the initiator can not restart a bit stream until the first bit of the second drive, because of the vendor specific bit positions on sload. this pin may be optionally used as gpo[21] sclk/ gpo[20] o the sclk is repeatedly toggled at 32khz, the rising edge of sclk is used to transmit changes in sload, sdataout0 and sdataout1. the falling edge of sclk is used to latch sload, sdataout0 and sdataout1. when not using the sgpio bus (for example, during a reset and when power is off). the initiator shall tristate sclk. this pin may be optionally used as gpo[20] table 2-14. ide interface signals (sheet 1 of 2) name type description da[2:0] o ide device address: these output signals are connected to the corresponding signals on the ide connector. they are used to indicate which byte in either the ata command block or control block is being addressed. dcs1# o ide device chip selects for 100 range: for ata command register block. this output signal is connected to the corresponding signal on the ide connector. dcs3# o ide device chip select for 300 range: for ata control register block. this output signal is connected to the corresponding signal on the ide connector. dd[15:0] i/o ide device data: these signals directly drive the corresponding signals on the ide connector. there is a weak internal pull-down resistor on dd7. ddack# o ide device dma acknowledge: this signal directly drives the dak# signal on the ide connector. ddack# is asserted by the intel ? 631xesb/632xesb i/o controller hub to indicate to ide dma slave devices that a given data transfer cycle (assertion of dior# or diow#) is a dma data transfer cycle. this signal is used in conjunction with the pci bus master ide function and are not associated with any at-compatible dma channel. ddreq i ide device dma request: this input signal is directly driven from the drq signal on the ide connector. it is asserted by the ide device to request a data transfer, and used in conjunction with the pci bus master ide function and are not associated with any at compatible dma channel. table 2-13. serial ata interface signals (sheet 2 of 2) name type description
66 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions 2.11 firmware hub interface dior# / dwstb / rdmardy# o disk i/o read (pio and non-ultra dma) : this is the command to the ide device that it may drive data onto the dd lines. data is latched by the intel ? 631xesb/632xesb i/o controller hub on the deassertion edge of dior#. the ide device is selected either by the ata register file chip selects (dcs1# or dcs3#) and the da lines, or the ide dma acknowledge (ddak#). disk write strobe (ultra dma writes to disk): this is the data write strobe for writes to disk. when writing to disk, intel ? 631xesb/632xesb i/o controller hub drives valid data on rising and falling edges of dwstb. disk dma ready (ultra dma reads from disk): this is the dma ready for reads from disk. when reading from disk, intel ? 631xesb/632xesb i/o controller hub deasserts rdmardy# to pause burst data transfers. diow# / dstop o disk i/o write (pio and non-ultra dma) : this is the command to the ide device that it may latch data from the dd lines. data is latched by the ide device on the deassertion edge of diow#. the ide device is selected either by the ata register file chip selects (dcs1# or dcs3#) and the da lines, or the ide dma acknowledge (ddak#). disk stop (ultra dma): intel ? 631xesb/632xesb i/o controller hub asserts this signal to terminate a burst. iordy / (drstb / wdmardy#) i i/o channel ready (pio) : this signal will keep the strobe active (dior# on reads, diow# on writes) longer than the minimum width. it adds wait-states to pio transfers. disk read strobe (ultra dma reads from disk): when reading from disk, intel ? 631xesb/632xesb i/o controller hub latches data on rising and falling edges of this signal from the disk. disk dma ready (ultra dma writes to disk): when writing to disk, this is de- asserted by the disk to pause burst data transfers. table 2-15. firmware hub interface signals name type description fwh[3:0] / lad[3:0] i/o firmware hub signals. these signals are multiplexed with the lpc address signals. fwh4 / lframe# i/o firmware hub signals. this signal is multiplexed with the lpc lframe# signal. table 2-14. ide interface signals (sheet 2 of 2) name type description
intel ? 631xesb/632xesb i/o controller hub datasheet 67 signal descriptions 2.12 lpc interface 2.13 usb interface table 2-16. lpc interface signals name type description lad[3:0] / fwh[3:0] i/o lpc multiplexed command, address, data. ldrq[0]# ldrq[1]# / gpi[41] i lpc serial dma/master request inputs: ldrq[1:0]# are used to request dma or bus master access. these signals are typically connected to external super i/o device. an internal pull-up resistor is provided on these signals. ldrq[1]# may optionally be used as gpi. lframe# / fwh[4] o lpc frame: lframe# indicates the start of an lpc cycle, or an abort. lpcpd# / sus_stat# o suspend status : indicates that the system will be entering a low power state soon. table 2-17. usb interface signals name type description oc[3:0]# oc[5:4]# / gpio[10:9] oc[7:6]# / gpio[15:14] i overcurrent indicators : these signals set corresponding bits in the usb controllers to indicate that an overcurrent condition has occurred. oc[7:4]# may optionally be used as gpis. oc[7:0]# are not 5 v tolerant. usbp[0]p, usbp[0]n, usbp[1]p, usbp[1]n i/o universal serial bus port [1:0] differential : these differential pairs are used to transmit data/address/command signals for ports 0 and 1. these ports can be routed to uhci controller #1 or the ehci controller. usbp[2]p, usbp[2]n, usbp[3]p, usbp[3]n i/o universal serial bus port [3:2] differential : these differential pairs are used to transmit data/address/command signals for ports 2 and 3. these ports can be routed to uhci controller #2 or the ehci controller. usbp[4]p, usbp[4]n, usbp[5]p, usbp[5]n i/o universal serial bus port [5:4] differential : these differential pairs are used to transmit data/address/command signals for ports 4 and 5. these ports can be routed to uhci controller #3 or the ehci controller. usbp[6]p, usbp[6]n, usbp[7]p, usbp[7]n i/o universal serial bus port [7:6] differential : these differential pairs are used to transmit data/address/command signals for ports 6 and 7. these ports can be routed to uhci controller #4 or the ehci controller. usbrbias, usbrbias# i usb resistor bias: analog connection point for an external resistor. used to set transmit currents and internal load resistors.
68 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions 2.14 ac ?97 link note: high definition audio mode is selected through d27:f0:40h, bit 0: az/ac97#. this bit selects the mode of the shared high definition audio/ac ?97 signals. when set to 0 ac ?97 mode is selected. when set to 1 high definition audio mode is selected. the bit defaults to 0 (ac ?97 mode). 2.15 processor interface table 2-18. ac ?97 link signals name type description acz_rst# o ac ?97/high definition audio reset: master hardware reset to external codec(s). acz_sync o ac ?97/high definition audio sync: 48 khz fixed rate sample sync to the codec(s). also used to encode the stream number. acz_bit_clk i/o ac?97 bit clock input: 12.288 mhz serial data clock generated by the external codec(s). this signal has an integrated pull-down resistor (see note 1). high definition audio bit clock output: 24.000 mhz serial data clock generated by the high definition audio controller. this signal has an integrated pull-down resistor so that acz_bit_clk doesn?t float when an high definition audio coded (or no codec) is connected, but the signals are temporarily configured as ac?97. acz_sdout o ac ?97/high definition audio serial data out: serial tdm data output to the codec(s). this serial output is double-pumped for a bit rate of 48mb/s for high definition audio note: acz_sdout is sampled at the rising edge of pwrok as a functional strap. see section 2.28 for more details. acz_sdin[2:0] i ac ?97/high definition audio serial data in [2:0]: serial tdm data inputs from the three codecs. the serial input is single -pumped for a bit rate of 24 mb/s for high definition audio. table 2-19. processor interface signals (sheet 1 of 2) name type description a20gate i a20 gate: a20gate is from the keyboard controller. the signal acts as an alternative method to force the a20m# signal active. it saves the external or gate needed with various other chipsets. a20m# o mask a20: a20m# will go active based on either setting the appropriate bit in the port 92h register, or based on the a20gate input being active. cpupwrgd / gpo[49] od cpu power good: this signal should be connected to the processor?s pwrgood input. this is an open-drain output signal (external pull-up resistor required) that represents a logical and of the intel ? 631xesb/632xesb i/o controller hub?s pwrok and vrmpwrgd signals. this signal may optionally be configured as a gpio. cpuslp# o cpu sleep: this signal puts the processor into a state that saves substantial power compared to stop-grant state. however, during that time, no snoops occur. the intel intel ? 631xesb/632xesb i/o controller hub can optionally assert the cpuslp# signal when going to the s1 state. ferr# i numeric coprocessor error: this signal is tied to the coprocessor error signal on the processor. ferr# is only used if the intel ? 631xesb/632xesb i/o controller hub coprocessor error reporting function is enabled in the oic.cen register (chipset config registers:offset 31ffh: bit 1). if ferr# is asserted, the intel ? 631xesb/ 632xesb i/o controller hub generates an internal irq13 to its interrupt controller unit. it is also used to gate the ignne# signal to ensure that ignne# is not asserted to the processor unless ferr# is active. ferr# requires an external weak pull-up to ensure a high level when the coprocessor error function is disabled. note: ferr# can be used in some states for notification by the processor of pending interrupt events. this functionality is independent of the oic register bit setting.
intel ? 631xesb/632xesb i/o controller hub datasheet 69 signal descriptions ignne# o ignore numeric error: this signal is connected to the ignore error pin on the processor. ignne# is only used if the intel ? 631xesb/632xesb i/o controller hub coprocessor error reporting function is enabled in the oic.cen register (chipset config registers:offset 31ffh: bit 1). if ferr# is active, indicating a coprocessor error, a write to the coprocessor error register (i/o register f0h) causes the ignne# to be asserted. ignne# remains asserted until ferr# is negated. if ferr# is not asserted when the coprocessor error register is written, the ignne# signal is not asserted. init# o initialization: init# is asserted by the intel ? 631xesb/632xesb i/o controller hub for 16 pci clocks to reset the processor. intel ? 631xesb/632xesb i/o controller hub can be configured to support processor built in self test (bist). init3_3v# o initialization 3.3 v: this is the identical 3.3 v copy of init# intended for firmware hub. intr o cpu interrupt: intr is asserted by the intel ? 631xesb/632xesb i/o controller hub to signal the processor that an inte rrupt request is pending and needs to be serviced. it is an asynchronous output and normally driven low. nmi o non-maskable interrupt: nmi is used to force a non-maskable interrupt to the processor. the intel ? 631xesb/632xesb i/o controller hub can generate an nmi when either serr# is asserted or iochk# goes active via the serirq# stream. the processor detects an nmi when it detects a rising edge on nmi. nmi is reset by setting the corresponding nmi source enable/disable bit in the nmi status and control register (i/o register 61h). rcin# i keyboard controller reset cpu: the keyboard controller can generate init# to the processor. this saves the external or gate with the intel ? 631xesb/632xesb i/ o controller hub?s other sources of init#. when the intel ? 631xesb/632xesb i/o controller hub detects the assertion of this signal, init# is generated for 16 pci clocks. smi# o system management interrupt: smi# is an active low output synchronous to pciclk. it is asserted by the intel ? 631xesb/632xesb i/o controller hub in response to one of many enabled hardware or software events. stpclk# o stop clock request: stpclk# is an active low output synchronous to pciclk, asserted by the intel ? 631xesb/632xesb i/o controller hub in response to some hardware or software events. when the processor samples stpclk# asserted, it responds by stopping its internal clock. table 2-19. processor interface signals (sheet 2 of 2) name type description
70 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions 2.16 smbus interface 2.17 power management interface table 2-20. smbus interface signals name type description smbclk i/od smbus clock. external pull-up required. smbdata i/od smbus data. external pull-up required. smbalert#/ gpi[11] i smbus alert : this signal is used to wake the system or generate smi#. if not used for smbalert#, it can be used as a gpi. sclk i/od sm bus clock pin: external pull-up required. this smbus is used only for internal pci-x bridge and works only as a slave device. sdta i/od sm bus data pin: external pull-up required. this smbus is used only for internal pci-x bridge and works only as a slave device. smbus[5], smbus[3:1] i smbus address straps . internal pci-x bridge smbus address strap. flbsd[1:0] i/o bmc fastlink slave data: data driven by the fml slave device. in fml slave, this is the data driven by the intel ? 631xesb/632xesb i/o controller hub. in fml master, it is the data sampled by intel ? 631xesb/632xesb i/o controller hub as a master device. flbsintex[1:0] i/o bmc fastlink read alert/extend clock low: this pin is driven by the fml slave device and has two functions: (1) alert the master device to read from slave. (2) clock extension - when set zero it indicates to the master to extend its low period of the clock. when used as smb, this pin can be used also as smbus alert for smbus1/0. smbclk[4:0] i/o/ od bmc smb clock: this pin is the clk driven by the bus master one clock pulse is generated for each data bit transferred. in fml master, this pin is output, in fml slave, this pin is input. in smb, this pin is open drain. smbd[4:0] i/o/ od bmc smb data: stable during the high period of the clock (unless it is a start or stop condition). in fml, this pin is the da ta driven by the bus master data line is not changed while the flbmck is high (unless it is a start or stop condition). in fml master, this pin is output, in fml slave, this pin is input. in smb, this pin is open drain. smbalrt_[4:2] i/od bmc smbus alert: smb alert status can be polled by fw to indicate whether there is an alert event. table 2-21. power management interface signals (sheet 1 of 2) name type description pwrbtn# i power button: the power button will cause smi# or sci to indicate a system request to go to a sleep state. if the system is already in a sleep state, this signal will cause a wake event. if pwrbtn# is pressed for more than 4 seconds, this will cause an unconditional transition (power button override) to the s5 state. override will occur even if the system is in the s1-s4 states. pwrok i power ok: when asserted, pwrok is an indication to the intel ? 631xesb/ 632xesb i/o controller hub that core power and pciclk have been stable for at least 99 ms. pwrok can be driven asynchronously. when pwrok is negated, the intel ? 631xesb/632xesb i/o controller hub asserts pcirst# and pltrst#. note: pwrok must deassert for a minimum of three rtc clock periods in order for the intel ? 631xesb/632xesb i/o controller hub to fully reset the power and properly generate the pcirst# and pltrst# outputs. ri# i ring indicate: this signal is an input from a modem. it can be enabled as a wake event, and this is preserved across power failures. rsmrst# i resume well reset: this signal is used for resetting the resume power plane logic.
intel ? 631xesb/632xesb i/o controller hub datasheet 71 signal descriptions 2.18 system management interface slp_s3# o s3 sleep control: slp_s3# is for power plane control. this signal shuts off power to all non-critical systems when in s3 (suspend to ram), s4 (suspend to disk), or s5 (soft off) states. slp_s4# o s4 sleep control: slp_s4# is for power plane control. this signal shuts power to all non-critical systems when in the s4 (suspend to disk) or s5 (soft off) state. note: this pin must be used to control the dram power in order to use the intel ? 631xesb/632xesb i/o controller hub?s dram power-cycling feature. slp_s5# o s5 sleep control: slp_s5# is for power plane control. this signal is used to shut power off to all non-critical systems when in the s5 (soft off) states. sus_stat# / lpcpd# o suspend status: this signal is asserted by the intel ? 631xesb/632xesb i/o controller hub to indicate that the system will be entering a low power state soon. this can be monitored by devices with memory that need to switch from normal refresh to suspend refresh mode. it can also be used by other peripherals as an indication that they should isolate their outputs that may be going to powered-off planes. this signal is called lpcpd# on the lpc interface. susclk o suspend clock: this clock is an output of the rtc generator circuit to use by other chips for refresh clock. sys_reset# i system reset: this pin forces an internal reset after being debounced. the intel ? 631xesb/632xesb i/o controller hub will reset immediately if the smbus is idle; otherwise, it will wait up to 25 ms 2 ms for the smbus to idle before forcing a reset on the system. thrm# i thermal alarm: this is an active low signal generated by external hardware to start the hardware clock throttling mode. can also generate an smi# or an sci. thrmtrip# i thermal trip: when low, this signal indicates that a thermal trip from the processor occurred, and the intel ? 631xesb/632xesb i/o controller hub will immediately transition to a s5 state. the intel ? 631xesb/632xesb i/o controller hub will not wait for the processor stop grant cycle since the processor has overheated. vrmpwrgd i vrm power good: this should be connected to be the processor?s vrm power good signifying the vrm is stable. wake# i pci express wake event table 2-22. system management interface signals name type description intruder# i intruder detect: this signal can be set to disable the system if it is detected that the system chassis is opened. this signal?s status is readable, so it can be used like a gpi if the intruder detection is not needed. smlink[1:0] i/od system management link: smbus link to optional external system management asic or lan controller. external pull-ups are required. note that smlink0 corresponds to an smbus clock signal, and smlink1 corresponds to an smbus data signal. table 2-21. power management interface signals (sheet 2 of 2) name type description
72 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions 2.19 flash and eep rom interface 2.20 expansion bus interface table 2-23. flash and eeprom interface signals name type description flsh_si o flash serial data output : input to the flash. flsh_so i flash serial data : output from the flash. flsh_sck o flash serial clock : operates at ~20 mhz. flsh_ce# o flash chip select output . ee_sk o eeprom shift clock : serial clock output to the eeprom, operates at ~1 mhz. ee_di o eeprom data in : data output to eeprom. ee_do i eeprom data out : data input from eeprom. ee_cs# o eeprom chip select : chip select signal to the eeprom. table 2-24. expansion bus interface name type description ebus_ad[24:9] i/o expansion bus high address bits : multiplexed with data. address data bus for parallel flash and sram. data bus for sdram ebus_ad[8:0] i/o expansion bus address bits : low address bits for parallel flash, sram and sdram ebus_adv#/ ebus_ras# o pflash address valid /sdram ras. address valid for parallel flash. row address strobe for sdram. ebus_alat/ ebus_cke o expansion bus address latch: used to latch flash/sram address. clock enable for sdram. ebus_be_[1:0]# o expansion bus data byte enable : byte enable for write operation ebus_be_0 = least significant bits, ebus_be_1 = most significant bits ebus_ce_[2:1]# o expansion bus chip enable : chip enable 1 is flash chip enable. chip enable 2 is sram or sdram memory chip enable. ebus_clk_2 o expansion bus clock output: 125 mhz clock output for sdram ebus_frst# o external flash reset. ebus_oe#/ ebus_cas# o output enable for parallel flash and sram, column address strobe for sdram ebus_we# o expansion bus write enable for parallel flash, sram and sdram.
intel ? 631xesb/632xesb i/o controller hub datasheet 73 signal descriptions 2.21 rs-232 interface 2.22 real time clock interface table 2-25. rs-232 interface name type description rs232_cts i clear to send. rs232_dcd i data carrier detected. rs232_dsr i data set ready. rs232_dtr o data terminal ready. rs232_ri i ring indicator. rs232_rts o request to send. rs232_sin i serial input. rs232_sout o serial output. table 2-26. real time clock interface name type description rtcx1 special crystal input 1: this signal is connected to the 32.768 khz crystal. if no external crystal is used, then rtcx1 can be driven with the desired clock rate. rtcx2 special crystal input 2: this signal is connected to the 32.768 khz crystal. if no external crystal is used, then rtcx2 should be left floating. rtcrst# i rtc reset: when asserted, this signal resets register bits in the rtc well. notes: 1. unless cmos is being cleared (only to be done in the g3 power state), the rtcrst# input must always be high when all other rtc power planes are on. 2. in the case where the rtc battery is dead or missing on the platform, the rtest# pin must rise before the rtcrst# pin.
74 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions 2.23 jtag interface 2.24 other clocks 2.25 general purpose i/o table 2-27. jtag interface signals signal type description tck i tap clock in: this is the input clock to the jtag tap controller active rising edge, which runs from 0-16 mhz. tdi i test data in: this is the serial data input to the jtag bscan shift register chain and to the bscan control logic. this is latched in on the rising edge of tck. tdo o test data output: this is the serial data output from the bscan logic. tms i test mode select: this signal controls the tap controller state machine to move to different states and is sampled on the rising edge of tck. trst# i test reset in: this signal is used to asynchro nously reset the jtag bscan logic. table 2-28. other clocks name type description clk14 i oscillator clock: used for 8254 timers. runs at 14.31818 mhz. this clock is permitted to stop during s3 (or lower) states. clk48 i 48 mhz clock: used to run the usb controller. runs at 48 mhz. this clock is permitted to stop during s3 (or lower) states. table 2-29. general purpose i/o signals (sheet 1 of 2) name type tolerance power well description gpo[49] od 3.3 v v_cpu_io fixed as output only. can instead be used as cpupwrgd. gpio[48] o 3.3 v vcc33 fixed as output only. can instead be used as gnt4#. gpio[47:42] n/a n/a n/a not implemented. gpi[41] i 3.3 v vcc33 fixed as input only. can be used instead as ldrq1#. gpi[40] i 5 v v5ref fixed as input only. can be used instead as req4#. gpio[39:35] n/a n/a n/a not implemented. gpio[34:33] i/o 3.3 v vcc33 can be input or output. unmuxed gpio[32] i/o 3.3v vcc33 can be input or output. can be used instead as sdataout1 gpi[31] i 3.3 v vcc33 fixed as input. can instead be used for sata[3]gp. gpi[30] i 3.3 v vcc33 fixed as input. can instead be used for sata[2]gp. gpi[29] i 3.3 v vcc33 fixed as input. can instead be used for sata[1]gp. gpio[28:27] i/o 3.3 v vccpsus can be input or output. unmuxed. note: gpio[28:27] may be programmed to blink (controllable by gpio_blink (d31:f0:offset gpiobase+18h:bit 28:27)). gpi[26] i 3.3 v vcc33 fixed as input. can instead be used for sata[0]gp.
intel ? 631xesb/632xesb i/o controller hub datasheet 75 signal descriptions notes: 1. gpi[15:0] can be configured to cause a smi# or sci. note that a gpi can be routed to either an smi# or an sci, but not both. 2. all inputs are sticky. the status bit remains set as long as the input was asserted for two clocks. gpio inputs are sampled on pci clocks in s0/s1. gpio inputs are sampled on rtc clocks in s3/s4/s5. 3. some gpios exist in the vccpsus power plane. care must be taken to make sure gpio signals are not driven high into powered-down planes. some intel ? 631xesb/632xesb i/o controller hub gpios may be connected to pins on devices that exist in the core well. if these gpios are outputs, there is a danger that a loss of core power (pwrok low) or a power button override event will result in the intel ? 631xesb/ 632xesb i/o controller hub driving a pin to a logic 1 to another device that is powered down. gpio[25] i/o 3.3 v vccpsus can be input or output. unmuxed. strap for internal vcc2_5 regulator. see section 2.28 . note: gpio[25] may be programmed to blink (controllable by gpio_blink (d31:f0:offset gpiobase+18h:bit 25)). gpio[24] i/o 3.3 v vccpsus can be input or output. unmuxed. gpo[23] o 3.3 v vcc33 fixed as output only. can be used instead as sdataout0 gpio[22] n/a n/a n/a not implemented gpo[21] o 3.3 v vcc33 fixed as output only. can be used instead as sload gpo[20] o 3.3 v vcc33 fixed as output only. can be used instead as sclk gpo[19] o 3.3 v vcc33 fixed as output only. unmuxed. note: gpo[19] may be programmed to blink (controllable by gpio_blink (d31:f0:offset gpiobase+18h:bit 19)). gpo[18] o 3.3 v vcc33 fixed as output only. unmuxed. note: gpo[18] will blink by default immediately after reset (controllable by gpio_blink (d31:f0:offset gpiobase+18h:bit 18)). gpo[17] o 3.3 v vcc33 fixed as output only. can be used instead as pci gnt[5]#. gpo[16] o 3.3 v vcc33 fixed as output only. can be used instead as pci gnt[6]#. gpi[15:14] i 3.3 v vccpsus fixed as input only. can be used instead as oc[7:6]# gpi[13] i 3.3v vcc33 fixed as input only. can instead be used for sata[5]gp. gpi[12] i 3.3v vcc33 fixed as input. can instead be used for sata[4]gp. gpi[11] i 3.3 v vccpsus fixed as input only. can be used instead as smbalert#. gpi[10:9] i 3.3 v vccpsus fixed as input only. can be used instead as oc[5:4]#. gpi[8] i 3.3 v vccpsus fixed as input only. unmuxed. gpi[7] i 3.3 v vcc33 fixed as input only. unmuxed. gpi[6] i 3.3 v vcc33 fixed as input only. unmuxed. gpi[5:2] i 5 v v5ref fixed as input only. can be used instead as pirq[h:e]#. gpi[1,0] i 5 v v5ref fixed as input only. can be used instead as pci req[5,6]#. table 2-29. general purpose i/o signals (sheet 2 of 2) name type tolerance power well description
76 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions 2.26 miscellaneous signals table 2-30. miscellaneous signals (sheet 1 of 2) name type description intvrmen i internal voltage regulator enable : this signal enables the internal 1.5 v suspend regulator when connected to vccrtc. when connected to vss, the internal regulator is disabled spkr o speaker : the spkr signal is the output of counter 2 and is internally ?anded? with port 61h bit 1 to provide speaker data enable. this signal drives an external speaker driver device, which in turn drives the system speaker. upon pltrst#, its output state is 0. note: spkr is sampled at the rising edge of pwrok as a functional strap. see section 2.28 for more details. there is a weak integrated pull- down resistor on spkr pin. tp[0] i test point 0: strap pin for xor test mode. route this pin to a test point. esb2_test0 o should be left unconnected. esb2_test1 i/o should be left unconnected. esb2_test2 i should be left unconnected. lan_pwr_good i lan power enable : this pin indicates that the aux power is stable. at a low level this pins disable any functionality of the lan & management part of intel ? 631xesb/632xesb i/o controller hub. low to hi transition initialize the lan & management part of intel ? 631xesb/632xesb i/o controller hub. this pin must rise at least 300ms before the rising edge of the perst# signal. perst# i lan core power and clock good indication: the assertion of perst# indicates that both the power and the pci express clock sources are stable. pe_wake# od pme wake : intel ? 631xesb/632xesb i/o controller hub will drive this signal to 0 when wakeup event occurs and wake is enabled. lan0_dis# i lan 0 disable: used as strapping pins to disable or enable lan port 0. should have an external pull-up that is connected to vaux to avoid disabling of the lan if the internal pull-up is released. lan1_dis# i lan 1 disable: used as strapping pins to disable or enable lan port 1. should have an external pull-up that is connected to vaux to avoid disabling of the lan if the internal pull-up is released. sdp0[2:0] i/o software-defined pins for lan port 0 :these pins are shared with lan port 0, these pins are software programmable with write/read input/output capability. these pins are input pins by default, but can be reset to their eeprom defaults at ac power on, lan pci express reset or lan port state change from d3 ~ d0. input function is always available, but if it's used as output, the output function will be locked for up to 1 second until eeprom defaults are updated, so these pins are not recommended to be used as output. if lan port is disabled by lan_dis_0/1# pin, these pins are not functional. sdp1[2:0] i/o software-defined pins for lan port 1 :these pins are shared with lan port 1, these pins are software programmable with write/read input/output capability. these pins are input pins by default, but can be reset to their eeprom defaults at ac power on, lan pci express reset or lan port state change from d3 ~ d0. input function is always available, but if it's used as output, the output function will be locked for up to 1 second until eeprom defaults are updated, so these pins are not recommended to be used as output. if lan port is disabled by lan_dis_0/1# pin, these pins are not functional. sdp2[7:0] i/o bmc gpio . dedicated to mms. can be used either as regular gpio or as tachometers or pwm generators. the direction and the value (when configured as an output) are eeprom configurable during power-on reset. these pins are not affected by sw or system reset. sdp3_0/led0_0 o used either as bmc generic gpio, or as lan 0 -activity led driver output by default. sdram_ad12/ spd3_1/led0_1 o used as a12 if the port is used in external sdram mode, or as bmc generic gpio, or as lan 0 - 10m led driver output by default if sdram mode is not enabled.
intel ? 631xesb/632xesb i/o controller hub datasheet 77 signal descriptions 2.27 power and ground sdram_ba0/ sdp3_2/led0_2 o used as ba0 if the port is used in external sdram mode, or as bmc generic gpio, or as lan 0 - 100m led driver output by default if sdram mode is not enabled. sdram_ba1/ sdp3_3/led0_3 o used as ba1 if the port is used in external sdram mode, or as bmc generic gpio, or as lan 0 - 1000m led driver output by default if sdram mode is not enabled. sdp3_4/led1_0 o used either as bmc generic gpio, or as lan 1-activity led driver output by default. sdram_a9/ sdp3_5/led1_1 o used as a9 if the port is used in external sdram mode, or as bmc generic gpio, or mac 1 - 10m led driver output by default if sdram mode is not enabled. sdram_a10/ sdp3_6/led1_2 o used as a10 if the port is used in external sdram mode, or as bmc generic gpio, or as lan 1- 100m led driver output by default if sdram mode is not enabled. sdram_a11/ sdp3_7/led1_3 o used as a11 if the port is used in external sdram mode, or as bmc generic gpio, or as lan 1- 1000m led driver output by default if sdram mode is not enabled. npecfg i north pci express connections. for details, please see ?pin straps? . specfg i south pci express connections. for details, please see ?pin straps? strap_[0:8] i/o strap pins. for details, please see ?pin straps? table 2-31. power and ground signals (sheet 1 of 2) name description v5refsus reference for 5v stb tolerance : used on resume well inputs (1 pin). this power is not expected to be shut off unless the system is unplugged. vcc5ref reference for 5v tolerance : used on core well inputs (2 pins). this power is shut off in s3, s4 and s5 states. vccaesi esi pll analog power : 1.5v, this power is shut off in s3, s4 and s5 states. vccbgesi analog power for esi afe reference circuitry : 3.3v, this power is supplied with the core well. vssbgesi analog gnd for esi afe reference circuitry vccapll sata pll analog power : 1.5v, this power is supplied with the core well. vccarx sata rx analog power : 1.5v, this power is supplied with the core well. vccatx sata tx analog power : 1.5v, this power is supplied with the core well. vccasatabg analog power for sata afe reference circuitry : 3.3v. this power is supplied with the core well vssasatabg analog ground for sata afe reference circuitry vcc power for core : 1.5v, this power is shut off in s3, s4 and s5 states. vss ground vccpcpu power for cpu i/f signals : 1.0v to 1.55v. the power will be shut in s3, s4, and s5 states. vccpide power for ide periphery : 3.3v. this power will be shut in s3, s4, and s5 states. vccppci power for pci periphery : 3.3v. this power will be shut in s3, s4, and s5 states. table 2-30. miscellaneous signals (sheet 2 of 2) name type description
78 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions vccprtc supply for rtc well (1 pin). 3.3 v (can drop to 2.0 v min. in g3 state). this power is not expected to be shut off unless the rtc battery is removed or completely drained. note: implementations should not attempt to clear cmos by using a jumper to pull vccrtc low. clearing cmos in an intel ? 631xesb/632xesb i/o controller hub-based platform can be done by using a jumper on rtcrst# or gpio. vccpsus suspend well io supply : 3.3 v supply for resume well i/o buffers. this power is not expected to be shut off unless the system is unplugged. vccsus[2:1] suspend well core supply : 1.5v standby. this must only be connected to an external 1.5v power supply when the integrated vrm is disabled. this power is not expected to be shut unless the system is in a g3 state (unplugged in desktop). vccusb power for usb afe logic: 1.5v. this must only be connected to an external 1.5v power supply when the integrated vrm is disabled. this power is supplied with the suspend well. vccusbcore power for usb afe logic : 1.5v. this power is supplied with core well. vccpusb power for usb output drivers: 3.3v. this power is supplied with the suspend well. vccaupll analog power for usb afe pll: 1.5v. this power is supplied with the core well. vccaubg analog power for usb afe reference circuitry: 3.3v. this power is supplied with the suspend well. vssaubg analog ground for usb afe reference circuitry vccp25pci power for pci periphery: 2.5v. this supply will be shut in s3_cold, s4 and s5 states. this power may be supplied by either an external regulator or by an internal regulator. this selection is determined by a strap that dete rmines the source for both the 2.5v pci and 2.5v ide power planes together. the intel ? 631xesb/632xesb i/o controller hub consumes additional power on the vccpide and vccppci power planes (<30 mw) when the internal regulators are enabled. when disabl ed, the internal regulators draw negligible power (<1 mw) vccp25ide power for ide periphery : 2.5 v. this supply will be shut in s3_cold, s4 and s5 states. this power may be supplied by either an external regulator or by an internal regulator. this selection is determined by a strap that dete rmines the source for both the 2.5v pci and 2.5v ide power planes together. the intel ? 631xesb/632xesb i/o controller hub consumes additional power on the vccpide and vccppci power planes (<30 mw) when the internal regulators are enabled. when disabl ed, the internal regulators draw negligible power (<1mw) vcc15 1.5v pci-x* io supply vcc33 3.3v pci-x io supply vccap1 lbw pll analog power : supplied with1.5v core voltage vccap3 pci-x pll analog power : supplied with1.5v core voltage vccape pci express pll analog power , supplied with1.5v core voltage vrefpci pci vref : vref reference voltage to the pci pads vccbgpe pci express bandgap power , supplied by 2.5v core voltage vccpe power esi/pci express transmitter and receiver: 1.5 v supply for pci express and esi logic. this power may be shut off in s3, s4 and s5 states. vssape pci express pll analog ground vssbgpe pci express bandgap ground vcca3_3 serdes bandgap power: 3.3v aux power vccapll1_5 serdes pll analog power: 1.5v aux power vccaux1_5 aux well: 1.5v aux power vss2 ground vccaux3_3 bmc io supply : 3.3v aux power vccse serdes io supply : 1.5v aux power vssa3_3 serdes bandgap ground vssapll1_5 serdes pll analog ground table 2-31. power and ground signals (sheet 2 of 2) name description
intel ? 631xesb/632xesb i/o controller hub datasheet 79 signal descriptions 2.28 pin straps the following signals are used for static configuration. they are sampled at the rising edge of pwrok to select configurations (except as noted), and then revert later to their normal usage. to invoke the associated mode, the signal should be driven at least four pci clocks prior to the time it is sampled. table 2-32. functional strap definitions (sheet 1 of 3) signal usage when sampled comment acz_sdout 1, xor chain entrance 2, pci express port config bit 1 rising edge of pwrok allows entrance to xor chain testing when tp[0] pulled low at rising edge of pwrok. see section 10 for xor chain functionality information. when tp[0] not pulled low at rising edge of pwrok, sets bit 1 of rpc.pc (chipset config registers:offset 224h). see section 12.1.51 for details. this signal has a weak internal pull-down. acz_sync pci express port config bit 0 rising edge of pwrok sets bit 0 of rpc.pc (chipset config registers:offset 224h). see section 12.1.51 for details. this signal has a weak internal pull-down. gnt[5]#/ gpo[17]# boot bios destination selection rising edge of pwrok signal has a weak internal pull-up. allows for select memory ranges to be forwarded out the pci interface as opposed to the firmware hub. when sampled high, destination is lpc. also controllable via boot bios destination bit (chipset configuration registers:offset 3410h:bit 3) gnt[6]#/ gpo[16] top- b l ock s wa p override rising edge of pwrok the signal has a weak internal pull-up. if the signal is sampled low, this indicates that the system is strapped to the ?top-block swap? mode (intel ? 631xesb/632xesb i/o controller hub inverts a16 for all cycles targeting fwh bios space). the status of this strap is readable via the top swap bit (chipset configuration registers:offset 3414h:bit 0). note that software will not be able to clear the top-swap bit until the system is rebooted without gnt6# being pulled down. gpio[25] integrated vcc2_5 vrm enable/disable rising edge of rsmrst# integrated vrms are enabled when sampled low. weak internal pull-up during the rsmrst#. this pull-up is disabled within 100 ms after rsmrst# deasserts. spkr no reboot rising edge of pwrok the signal has a weak internal pull-down. if the signal is sampled high, this indicates that the system is strapped to the ?no reboot? mode (intel ? 631xesb/632xesb i/o controller hub will disable the tco timer system reboot feature). the status of this strap is readable via the no reboot bit (chipset config registers:offset 3410h:bit 5). hpx_sic test mode rising edge of pxpwrok 1 = normal operation 0 = reserved hpx_sid/ hxpcixcap1_2 test mode rising edge of pxpwrok 1 = reserved 0 = normal operation
80 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions hpx_slot[2] hpx_slot[1]/ hxprsnt1_1# hpx_slot[0]/ hxmrl_2# hot-plug mode / # of pci slots rising edge of pxpwrok used in conjunction with hpx_slot[3] signal to determine pci hot-plug mode and number of pci slots on a bus segment. hpx_slot[3:0] = hot-plug mode enable/disable, # of pci slots 0000 = hot-plug disabled, 1 slot (optional) 0001 = hot-plug disabled, 2 slots (optional) 0010 = hot-plug disabled, 3 slots (optional) 0011 = hot-plug disabled, 4 slots (optional) 0100 = hot-plug disabled, 5 slots (optional) 0101 = hot-plug disabled, 6 slots (optional) 0110 = hot-plug disabled, 7 slots (optional) 0111 = hot-plug disabled, 8 slots (optional) 1000 = reserved 1001 = hot-plug enabled, 1 slot (parallel mode) 1010 = hot-plug enabled, 2 slots (parallel mode) 1011 = hot-plug enabled, 3 slots (serial mode) 1100 = hot-plug enabled, 4 slots (serial mode) 1101 = hot-plug enabled, 5 slots (serial mode) 1110 = hot-plug enabled, 6 slots (serial mode) 1111 = hot-plug enabled, 1 slot-no-glue (parallel mode) hpx_slot[3]/ hxpwrled1# pci/pci-x* hot- plug mode enable/disable rising edge of pxpwrok 1 = hot-plug mode enabled 0 = hot-plug mode disabled intvrmen integrated vccsus1_5 vrm enable/disable always enables integrated vccsus1_5 vrm when sampled high. px133en 133 mhz pci-x enable / disable rising edge of pxpwrok only relevant when hot-plug mode is disabled (hpx_slot[3] = 0) or when in one-slot-no-glue hot-plug mode (hpx_slot[3:0] = 1111), and when in pci-x mode (pxpcixcap = 1). determines the maximum frequency (100 mhz or 133 mhz) of the pci bus segment when in pci-x mode: 1 = 133 mhz pci-x capable. 0 = 100 mhz pci-x max bus frequency. pxm66en pci 66 mhz enable / disable rising edge of pxpwrok only relevant when hot-plug mode is disabled (hpx_slot[3] = 0) or when in one-slot-no-glue hot-plug mode (hpx_slot[3:0] = 1111) and when in conventional pci mode (pxpcixcap = 0). determines the maximum frequency (33 mhz or 66 mhz) of the pci bus segment when in conventional pci mode: 1 = 66 mhz capable when in conventional pci mode. 0 = 33 mhz max frequency when in conventional pci mode. pastrap0 test mode rising edge of pxpwrok 1 = reserved 0 = normal operation smbus[5] smbus[3:1] smbus addressing straps rising edge of pxpwrok sets the smbus address. smbus addressing: bit 7----------------------------?1? bit 6----------------------------?1? bit 5----------------------------smbus[5] bit 4----------------------------?0? bit 3---------------------------- smbus[3] bit 2---------------------------- smbus[2] bit 1---------------------------- smbus[1] table 2-32. functional strap definitions (sheet 2 of 3) signal usage when sampled comment
intel ? 631xesb/632xesb i/o controller hub datasheet 81 signal descriptions npecfg north pci express connections rising edge of pxpwrok selects north pci express port connectivity 0 = configured as single x8 port or single x4 1 = configured as two x4 ports -- lanes 3:0 no change. -- lanes 7:4 become new x4 port. specfg south pci express connections rising edge of pxpwrok selects external south pci express port connectivity: 0 = configured as one x8 port 1 = configured as two x4 ports when the intel ? 631xesb/632xesb i/o controller hub south ports are put in x8 mode, pe1 lanes 3:0 stay the same, and pe2 lanes 3:0 become pe1 lanes 7:4. sdp2[0],sdp2[1] (note: for a0 silicon only) jtag function strapping rising edge of perst sdp2[0] with default being high. when low, it allows only lan jtag to be tested. when high with sdp2[1] being high, lan jtag is allowed to be tested. when high with sdp2[1] being low, it doesn?t allow lan jtag to be tested. flsh_si, ee_di (note: for a1 and later silicon) jtag function strapping rising edge of perst flsh_si. when low, it allows only lan jtag to be tested. when high with ee_di being high, lan jtag is allowed to be tested. when high with ee_di being low, it doesn?t allow lan jtag to be tested. strap_0 test mode perst# strap pin. need external pull-down in normal operation. strap_1 test mode perst# strap pin. need external pull-up to vaux in normal operation. strap_2 reference clock lan_pwr_go od strap pin. ? connect to gnd via 1k ohm resistor for 62.5 mhz ser_clk_in (default) ? connect to vccaux3_3 via 10k ohm resistor for 25 mhz ser_clk_in strap_3 test mode lan_pwr_go od strap pin. need external pull-down in normal operation. strap_4 reserved n/a strap pin. pulled up to p1v5_esb. strap_5 reserved n/a strap pin. pulled up to p1v5_esb. strap_6 reserved n/a strap pin. pulled up to p1v5_aux. strap_7 reserved n/a strap pin. need external pull-up. strap_8 reserved n/a strap pin. connected to ground, 0 ohm resistor. table 2-32. functional strap definitions (sheet 3 of 3) signal usage when sampled comment
82 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions 2.29 intel ? 631xesb/632xesb i/o controller hub revision and device id table table 2-33. intel ? 631xesb/632xesb i/o controller hub revision and device id table (sheet 1 of 2) device function function description intel ? 631xesb/ 632xesb i/o controller hub dev id intel ? 631xesb/ 632xesb i/o controller hub a0 rev id intel ? 631xesb/ 632xesb i/o controller hub a1 rev id comments b0:d30:f0 pci to pci bridge 244eh d8h d9h b0:d30:f2 ac?97 audio 2698h 08h 09h b0:d30:f3 ac?97 modem 2699h 08h 09h b0:d31:f0 lpc interface 267xh 08h 09h 2670h-267fh3 b0:d31:f1 pata controller 269eh 08h 09h b0:d31:f2 sata controller as ide 2680h 08h 09h d31f2 can be one of four types of hba depending on device id b0:d31:f2 sata controller as sata 2681h 08h 09h b0:d31:f2 sata controller as raid 0/1/5 2682h 08h 09h b0:d31:f2 sata controller as raid 0/1 2683h 08h 09h b0:d31:f3 smbus controller 269bh 08h 09h b0:d27:f0 high definition audio controller 269ah 08h 09h b0:d28:f0 pci express port 1 269xh 08h 09h fdpci express1 = 0, 2690h; fdpci express1 = 1, 2691h b0:d28:f1 pci express port 2 269xh 08h 09h fdpci express1 = 0, 2692h; fdpci express1 = 1, 2693h b0:d28:f2 pci express port 3 269xh 08h 09h fdpci express1 = 0, 2694h; fdpci express1 = 1, 2695h b0:d28:f3 pci express port 4 269xh 08h 09h fdpci express1 = 0, 2696h; fdpci express1 = 1, 2697h b0:d29:f0 usb 1.1 port 0,1 2688h 08h 09h b0:d29:f1 usb 1.1 port 2,3 2689h 08h 09h b0:d29:f2 usb 1.1 port 4,5 268ah 08h 09h b0:d29:f3 usb 1.1 port 6,7 268bh 08h 09h b0:d29:f7 usb2 host controller 268xh 08h 09h 268ch-268fh2 bm:d0:f0 pci express upstream port see comments 00h 01h 3500h - 3503h 4 bm:d0:f1 i/oxapic controller see comments 00h 01h 3504h - 3507h 4 bm:d0:f3 pci express-to-pci- x bridge see comments 00h 01h 350ch - 350fh 4
intel ? 631xesb/632xesb i/o controller hub datasheet 83 signal descriptions note: 1. pci express device id: this bit is mapped directly to bit [0] of the pci express ports device id register (id.did), located at device 28, functions 0 - 3. 2. usb2 device id: these bits are mapped directly to bits [1:0] of the usb2 host controller device id register (id.did), located at device 29, function 7. 3. lpc device id: these bits are mapped directly to bits [3:0] of lpc device id registers (id.did), located at device 31, function 0 (lpc bridge). 4. see section 13 for pci express bridge/switch configuration information. bp:d0:f0 pci express downstream port e1 see comments 00h 01h 3510h - 3513h 4 bp:d1:f0 pci express downstream port e2 see comments 00h 01h 3514h - 3517h 4 bp:d2:f0 pci express downstream port e3 see comments 00h 01h 3518h -351bh 4 bn:d0:f0 lan 0/lan 1 controller see comments 00h 01h see section 25 for lan controller configuration information. bn:d0:f1 lan 0/lan 1 controller see comments 00h 01h bn:d0:f2 ide redirection controller see comments 00h 01h bn:d0:f3 serial port redirection controller see comments 00h 01h bn:d0:f4 ipmi/kcs0 see comments 00h 01h bn:d0:f5 uhci redirection controller see comments 00h 01h bn:d0:f7 bt controller see comments 00h 01h table 2-33. intel ? 631xesb/632xesb i/o controller hub revision and device id table (sheet 2 of 2) device function function description intel ? 631xesb/ 632xesb i/o controller hub dev id intel ? 631xesb/ 632xesb i/o controller hub a0 rev id intel ? 631xesb/ 632xesb i/o controller hub a1 rev id comments
84 intel ? 631xesb/632xesb i/o controller hub datasheet signal descriptions
intel ? 631xesb/632xesb i/o controller hub datasheet 85 intel ? 631xesb/632xesb i/o controller hub and system clock domains 3 intel ? 631xesb/632xesb i/o controller hub and system clock domains ta bl e 3 - 1 shows the system clock domains. for complete details of the system clocking solution, refer to the system?s clock generator component specification. table 3-1. intel ? 631xesb/632xesb i/o controller hub and system clock domains clock domain frequency source usage esb2 acz_bit_clk 12.288 mhz ac?97 codec ac-link. generated by ac?97 codec. can be shut by codec in d3. expected to be shut off during s3 or below. note: for use only in ac ?97 mode. esb2 clk14 14.31818 mhz main clock generator used for acpi timer and multimedia timers. expected to be shut off during s3 or below. esb2 clk48 48.000 mhz main clock generator super i/o, usb controllers. expected to be shut off during s3 or below. esb2 esi_clkp, esi_clkn 100 mhz main clock generator differential clock pair used for esi. esb2 pciclk 33 mhz main clock generator free-running pci clock to intel ? 631xesb/632xesb i/o controller hub. this clock remains on during s0 and s1 state, and is expected to be shut off during s3 or below. esb2 peclkp peclkn 100 mhz main clock generator pci express upstream port clock. esb2 pxpclko[6:0] pxpclki 33/66/100/ 133 mhz intel ? 631xesb /632xesb i/o controller hub pci/pci-x interface clocks. esb2 sata_clkp, sata_clkn 100 mhz main clock generator differential clock pair used for sata. esb2 ser_clk_in 25/62.5 mhz phy or external oscillator kumeran/serdes interface. the lan and mms are clocked with clocks that are generated from this clock system pci 33 mhz main clock generator pci bus, lpc i/f. these only go to external pci and lpc devices. esb2 ebus_clk_2 125 mhz intel ? 631xesb /632xesb i/o controller hub 125 mhz clock output for sdram
86 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? 631xesb/632xesb i/o controller hub and system clock domains figure 3-1. conceptual system clock diagram pci-x 66/ 100 / 133 mhz intel ? 631xesb/ 632xesb i/o controller hub pci clocks ( 33 mhz ) 14. 31818 mhz 48. 000 mhz 32.768 khz xtal susclk# (32 khz) pci - x 66 / 100 / 133 slots ac ` 97 codec ( s) 12. 288 mhz high definition audio codec 24 mhz pci 33 mhz 62.5 mhz clock from oscillator or 82563 eb/82564 eb clock gen . sata diff pair 100 mhz usb 48. 000 mhz ref 14. 31818 mhz pci express diff pair 100 mhz esi diff pair 100 mhz bmc memory ebus _ clk _2 (s) 25/
intel ? 631xesb/632xesb i/o controller hub datasheet 87 intel ? 631xesb/632xesb i/o controller hub pin states 4 intel ? 631xesb/632xesb i/o controller hub pin states 4.1 integrated pull-ups and pull-downs table 4-1. integrated pull-up and pull-down resistors (sheet 1 of 4) signal resistor type nominal value ( ?? )notes dd[7] pull-down 11.5k 1 ddreq pull-down 11.5k 1 gnt[3:0]# pull-up 20k 2, 3 gnt[4]# / gpio[48] pull-up 20k 2, 3 gnt[5]# / gpo[17] pull-up 20k 2 gnt[6]# / gpo[16] pull-up 20k 2 pme# pull-up 20k 2 fwh[3:0]/lad[3:0] pull-up 20k 2 ldrq[0]# pull-up 20k 2 ldrq[1]#/gpi[41] pull-up 20k 2 acz_bit_clk, ac ?97 pull-down 20k 5, 6, 8 acz_rst#, ac ?97 pull-down 20k 4, 6, 8 acz_sdin[2:0], ac ?97 pull-down 20k 4, 8 acz_sdout, ac ?97 pull-down 20k 4, 7, 8 acz_sync, ac ?97 pull-down 20k 4, 7, 8 acz_bit_clk, high definition audio pull-down 20k 5, 8, 9 acz_rst#, high definition audio none n/a 8 acz_sdin[2:0], high definition audio pull-down 20k 4, 8 acz_sdout, high definition audio pull-down 20k 8 acz_sync, high definition audio pull-down 20k 4, 8 pwrbtn# pull-up 20k 2 spkr pull-down 20k 4 tp[0] pull-up 20k 10 gpio[25] pull-up 20k 2, 11 usbp[7:0][p,n] pull-down 15k 12 hpx_prst#/hpx_rst1# pull-up 8.33k 13 hpx_rst2# pull-up 8.33k 13 hpx_sil# pull-up 8.33k 13 hpx_sod pull-up 8.33k 13 hpx_sol pull-up 8.33k 13
88 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? 631xesb/632xesb i/o controller hub pin states hpx_solr pull-up 8.33k 13 hxatnled_1# pull-up 8.33k 13 hxpwren_1 pull-up 8.33k 13 pxgnt[0]# pull-up 8.33k 13 pxgnt[1]# pull-up 8.33k 13 pxgnt[2]# pull-up 8.33k 13 pxgnt[3]#/hxpwren_2 pull-up 8.33k 13 pxgnt[4]#/hxbusen_2# pull-up 8.33k 13 pxgnt[5]#/hxbusen_1# pull-up 8.33k 13 pxirdy# pull-up 8.33k 13 pxirq[0]# pull-up 8.33k 13 pxirq[1]# pull-up 8.33k 13 pxirq[10]# pull-up 8.33k 13 pxirq[11]# pull-up 8.33k 13 pxirq[12]# pull-up 8.33k 13 pxirq[13]# pull-up 8.33k 13 pxirq[14]# pull-up 8.33k 13 pxirq[15]# pull-up 8.33k 13 pxirq[2]# pull-up 8.33k 13 pxirq[3]# pull-up 8.33k 13 pxirq[4]# pull-up 8.33k 13 pxirq[5]# pull-up 8.33k 13 pxirq[6]# pull-up 8.33k 13 pxirq[7]# pull-up 8.33k 13 pxirq[8]# pull-up 8.33k 13 pxirq[9]# pull-up 8.33k 13 pxpar pull-up 8.33k 13 pxpar64 pull-up 8.33k 13 pxperr# pull-up 8.33k 13 pxplock# pull-up 8.33k 13 pxreq[0]# pull-up 8.33k 13 pxreq[1]# pull-up 8.33k 13 pxreq[2]# pull-up 8.33k 13 pxreq[3]# pull-up 8.33k 13 pxreq[4]#/hxprsnt2_2# pull-up 8.33k 13 pxreq[5]#/hxprsnt1_2# pull-up 8.33k 13 pxreq64# pull-up 8.33k 13 pxserr# pull-up 8.33k 13 pxstop# pull-up 8.33k 13 pxtrdy# pull-up 8.33k 13 extintr# pull-up 8.33k 13 tdi pull-up 20k 16 table 4-1. integrated pull-up and pull-down resistors (sheet 2 of 4) signal resistor type nominal value ( ?? )notes
intel ? 631xesb/632xesb i/o controller hub datasheet 89 intel ? 631xesb/632xesb i/o controller hub pin states trst# pull-up 20k 16 tms pull-up 20k 16 smbd0 pull-up 20k 17 smbclk0 pull-up 20k 17 flbsd0 pull-up 20k 17 flbsintex0 pull-up 20k 17 smbd1 pull-up 20k 14 smbclk1 pull-up 20k 14 flbsd1 pull-up 20k 14 flbsintex1 pull-up 20k 14 smbd2 pull-up 20k 15, 16 smbclk2 pull-up 20k 15, 16 smbalrt_2 pull-up 20k 15, 16 smbd3 pull-up 20k 15, 16 smbclk3 pull-up 20k 15, 16 smbalrt_3 pull-up 20k 15, 16 smbd4 pull-up 20k 15, 16 smbclk4 pull-up 20k 15, 16 smbalrt_4 pull-up 20k 15, 16 rs232_cts pull-up 20k 15, 16 rs232_dcd pull-up 20k 15, 16 rs232_dsr pull-up 20k 15, 16 rs232_dtr pull-up 20k 15, 16 rs232_ri pull-up 20k 15, 16 rs232_rts pull-up 20k 15, 16 rs232_sin pull-up 20k 15, 16 rs232_sout pull-up 20k 15, 16 ebus_ad[24:16] pull-up 20k 15, 16 ebus_ad[15:0] pull-up 20k 15, 16 ebus_adv#/ebus_ras# pull-up 20k 15, 16 ebus_alat/ebus_cke pull-up 20k 15, 16 ebus_be_[1:0]# pull-up 20k 15, 16 ebus_ce_[2:1]# pull-up 20k 15, 16 ebus_frst# pull-up 20k 15, 16 ebus_oe#/ebus_cas# pull-up 20k 15, 16 ebus_we# pull-up 20k 15, 16 sdp0[2:0] pull-up 20k 15, 16 sdp1[2:0] pull-up 20k 15, 16 sdp2[7:0] pull-up 20k 15, 16 lan0_dis# pull-up 20k 15, 16 lan1_dis# pull-up 20k 15, 16 sdp3_0/led0_0 pull-up 20k 15, 16 table 4-1. integrated pull-up and pull-down resistors (sheet 3 of 4) signal resistor type nominal value ( ?? )notes
90 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? 631xesb/632xesb i/o controller hub pin states notes: 1. simulation data shows that these resistor values can range from 5.7k ohm to 28.3k ohm. 2. simulation data shows that these resistor values can range from 15k ohm to 35k ohm. 3. the internal pull-up is enabled only when the pcirst # pin is driven low and the pwrok indication is high. 4. simulation data shows that these resistor values can range from 9k ohm to 50k ohm. 5. simulation data shows that these resistor values can range from 10k ohm to 40k ohm. 6. the pull-down resistors on acz_bit_clk (ac ?97) and acz_rst# are enabled when either: - the lso bit (bit 3) in the ac?97 global control register (d30:f2:2c) is set to 1, or - both function 2 and function 3 of device 30 are disabled. otherwise, the integrated pull-down resistor is disabled. 7. the pull-down resistors on acz_sync (ac ?97) and acz_sdout (ac ?97) are enabled during reset and also enabled when either: - the lso bit (bit 3) in the ac?97 global control register (d30:f2:2c) is set to 1, or - both function 2 and function 3 of device 30 are disabled. otherwise, the integrated pull-down resistor is disabled. 8. the ac ?97/high definition audio link signals may either all be configured to be an ac-link or an high definition audio link. 9. the pull-down on this signal (in intel high definition audio mode) is only enabled when in s3cold. 10. simulation data shows that these resistor values can range from 10k ohm to 30k ohm. 11. gpio[25] transitions from pulled high internally to actively driven to '1' following the deassertion of the rsmrst# pin. this transition must be glitch-free. 12. simulation data shows that these resistor values can range from 14.25k ohm to 24.8k ohm 13. 40%. 14. these pull-up registers are controlled by the fml1puen field in the gscr register of the mms auxiliary space (0x0f00:23). 15. note that the pullup is active only when the signal is in input mode. in output mode, the pullup resistor is disconnected inside intel ? 631xesb/632xesb i/o controller hub. these signal do not need motherboard pullups 16. simulation data shows that these resistor values can range from 15.3k ohm to 29.7k ohm. 17. these pull-up registers are controlled by the fml0puen field in the gscr register of the mms auxiliary space (0x0f00:22). sdram_ad12/spd3_1/ led0_1 pull-up 20k 15, 16 sdram_ba0/sdp3_2/led0_2 pull-up 20k 15, 16 sdram_ba1/sdp3_3/led0_3 pull-up 20k 15, 16 sdp3_4/led1_0 pull-up 20k 15, 16 sdram_a9/sdp3_5/led1_1 pull-up 20k 15, 16 sdram_a10/sdp3_6/led1_2 pull-up 20k 15, 16 sdram_a11/sdp3_7/led1_3 pull-up 20k 15, 16 strap_2 pull-up 20k 15, 16 esb2_test2 pull-up 20k 15, 16 pxcbe[7:0] pull-up 8.33k 13 table 4-1. integrated pull-up and pull-down resistors (sheet 4 of 4) signal resistor type nominal value ( ?? )notes
intel ? 631xesb/632xesb i/o controller hub datasheet 91 intel ? 631xesb/632xesb i/o controller hub pin states 4.2 ide integrated series termination resistors ta bl e 4 - 2 shows the intel ? 631xesb/632xesb i/o controller hub ide signals that have integrated series termination resistors. note: simulation data indicates that the integrated series termination resistors are nominally 33 but can range from 21 to 75 . 4.3 output and i/o sign als planes and states ta bl e 4 - 3 shows the power plane associated with the output and i/o signals, as well as the state at various times. within the table, the following terms are used: ?high-z? tri-state. intel ? 631xesb/632xesb i/o controller hub not driving the signal high or low. ?high? intel ? 631xesb/632xesb i/o controller hub is driving the signal to a logic 1 ?low? intel ? 631xesb/632xesb i/o controller hub is driving the signal to a logic 0 ?defined? driven to a level that is defined by the function (will be high or low) ?undefined? intel ? 631xesb/632xesb i/o controller hub is driving the signal, but the value is indeterminate. ?running? clock is toggling or signal is transitioning because function not stopping ?off? the power plane is off, so intel ? 631xesb/632xesb i/o controller hub is not driving note that the signal levels are the same in s4 and s5, except as noted. table 4-2. ide series termination resistors signal integrated series termination resistor value dd[15:0], diow#, dior#, dreq, ddack#, iordy, da[2:0], dcs1#, dcs3#, ideirq approximately 33 (see note) table 4-3. power plane and states for output and i/o signals for intel ? 631xesb/ 632xesb i/o controller hub (sheet 1 of 6) signal name power plane during pltrst#4 / rsmrst# 5 immediately after pltrst# 4 / rsmrst# 5 s1 s3 s4/s5 pci express* pe0tp[3:0] pe0tn[3:0] vcc1_5 high high10 defined off off pe1tp[3:0] pe1tn[3:0] vcc1_5 high high10 defined off off pe2tp[3:0] pe2tn[3:0] vcc1_5 high high10 defined off off pci bus ad[31:0] vcc33 low undefined defined off off c/be[3:0]# vcc33 low undefined defined off off devsel# vcc33 high-z high-z high-z off off
92 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? 631xesb/632xesb i/o controller hub pin states frame# vcc33 high-z high-z high-z off off gnt[4:0]# vcc33 high with internal pull- ups high high off off gnt[5]#/gpo[17] vcc33 high-z with internal pull- up high high off off gnt[6]#/gpo[16] vcc33 high-z with internal pull- up high high off off irdy#, trdy# vcc33 high-z high-z high-z off off par vcc33 low undefined defined off off pcirst# vccpsus low high high low low perr# vcc33 high-z high-z high-z off off plock# vcc33 high-z high-z high-z off off stop# vcc33 high-z high-z high-z off off pci-x* bus hxatnled_1# 3.3v high-z pulled high pulled high off off hxpwren_1 3.3v high-z pulled high pulled high off off hpx_prst#/ hpx_rst1# 3.3v high high high off off hpx_rst2# 3.3v high-z high high off off hpxsoc 3.3v high-z pulled high pulled high off off hpxsod 3.3v high-z pulled high pulled high off off hpxsol 3.3v high-z pulled high pulled high off off hpxsolr 3.3v undefined pulled high pulled high off off pxack64# 3.3v/1.5v high-z pulled high pulled high off off pxad[63:0] 3.3v/1.5v high-z pulled high pulled high off off pxcbe_[7]# 3.3v/1.5v high-z pulled high pulled high off off pxcbe_[6]# 3.3v/1.5v high-z pulled high pulled high off off pxcbe_[5]# 3.3v/1.5v high-z pulled high pulled high off off pxcbe_[4]# 3.3v/1.5v high-z pulled high pulled high off off pxcbe_[3]# 3.3v/1.5v high-z pulled high pulled high off off pxcbe_[2]# 3.3v/1.5v high-z pulled high pulled high off off pxcbe_[1]# 3.3v/1.5v high-z pulled high pulled high off off pxcbe_[0]# 3.3v/1.5v high-z pulled high pulled high off off pxdevsel# 3.3v high-z pulled high pulled high off off pxframe# 3.3v high-z pulled high pulled high off off pxgnt_[5]# 3.3v high pulled high pulled high off off pxgnt_[4]# 3.3v/1.5v high pulled high pulled high off off pxgnt_[3]# 3.3v/1.5v high pulled high pulled high off off pxgnt_[2]# 3.3v/1.5v high pulled high pulled high off off pxgnt_[1]# 3.3v high pulled high pulled high off off table 4-3. power plane and states for output and i/o signals for intel ? 631xesb/ 632xesb i/o controller hub (sheet 2 of 6) signal name power plane during pltrst#4 / rsmrst# 5 immediately after pltrst# 4 / rsmrst# 5 s1 s3 s4/s5
intel ? 631xesb/632xesb i/o controller hub datasheet 93 intel ? 631xesb/632xesb i/o controller hub pin states pxgnt_[0]# 3.3v high pulled high pulled high off off pxirdy# 3.3v high-z pulled high pulled high off off pxm66en 3.3v high-z undefined undefined off off pxpar 3.3v/1.5v high-z pulled high pulled high off off pxpar64 3.3v/1.5v high-z pulled high pulled high off off pxperr# 3.3v high-z pulled high pulled high off off pxplock# 3.3v high-z pulled high pulled high off off pxreq_[5]# 3.3v/1.5v high-z pulled high pulled high off off pxreq64# 3.3v/1.5v high-z pulled high pulled high off off pxstop# 3.3v high-z pulled high pulled high off off pxtrdy# 3.3v high-z pulled high pulled high off off sdta 3.3v high-z high-z high-z off off lpc interface lad[3:0] / fwh[3:0] vcc33 high high high off off lframe# / fwh[4] vcc33 high high high off off ide interface da[2:0] vcc33 undefined undefined undefined off off dcs1#, dcs3# vcc33 high high high off off dd[15:8], dd[6:0] vcc33 high-z high-z high-z off off dd[7] vcc33 low low low off off ddack# vcc33 high high high off off dior#, diow# vcc33 high high high off off sata interface sata[5:0]txp sata[5:0]txn vcc33 high-z high-z defined off off sataled# vcc33 high-z high-z defined off off satarbias vcc33 high-z high-z high-z off off interrupts pirq[a:h]# vcc33 high-z high-z high-z off off serirq vcc33 high-z high-z high-z off off usb interface usbp[7:0][p,n] vccpsus low low low low low usbrbias vccpsus high-z high-z defined defined defined power management pltrst# vccpsus low high high low low slp_s3# vccpsus low high high low low slp_s4# vccpsus low high high high low table 4-3. power plane and states for output and i/o signals for intel ? 631xesb/ 632xesb i/o controller hub (sheet 3 of 6) signal name power plane during pltrst#4 / rsmrst# 5 immediately after pltrst# 4 / rsmrst# 5 s1 s3 s4/s5
94 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? 631xesb/632xesb i/o controller hub pin states slp_s5# vccpsus low high high high low 8 sus_stat# vccpsus low high high low low susclk vccpsus low running processor interface a20m# v_cpu_io see note 1 see note 1 high off off cpupwrgd v_cpu_io see note 3 high-z high-z off off cpuslp# v_cpu_io high high defined off off ignne# v_cpu_io see note 1 see note 1 high off off init# v_cpu_io high high high off off init3_3v# vcc33 high high high off off intr v_cpu_io see note 6 see note 6 low off off nmi v_cpu_io see note 6 see note 6 low off off smi# v_cpu_io high high high off off stpclk# v_cpu_io high high low off off smbus interface smbclk, smbdata vccpsus high-z high-z defined defined defined sclk, sdta vcc33 high-z high-z defined defined defined flbsd[1:0] flbsintex[1:0] vccaux3_ 3 high-z high-z defined defined defined smbclk[4:0] smbd[4:0] vccaux3_ 3 high-z high-z defined defined defined system management interface smlink[1:0] vccpsus high-z high-z defined defined defined linkalert# vccpsus high-z high-z defined defined defined flash and eeprom interface 12 flsh_si vccaux3_3 defined defined defined defined defined flsh_sck vccaux3_3 defined defined defined defined defined flsh_ce# vccaux3_3 defined defined defined defined defined ee_sk vccaux3_3 defined defined defined defined defined ee_di vccaux3_3 defined defined defined defined defined ee_cs# vccaux3_3 defined defined defined defined defined kumeran interface signals setp0 vccaux3_3 defined defined defined defined defined setn0 vccaux3_3 defined defined defined defined defined setp1 vccaux3_3 defined defined defined defined defined setn1 vccaux3_3 defined defined defined defined defined sercompo vccaux3_3 defined defined defined defined defined table 4-3. power plane and states for output and i/o signals for intel ? 631xesb/ 632xesb i/o controller hub (sheet 4 of 6) signal name power plane during pltrst#4 / rsmrst# 5 immediately after pltrst# 4 / rsmrst# 5 s1 s3 s4/s5
intel ? 631xesb/632xesb i/o controller hub datasheet 95 intel ? 631xesb/632xesb i/o controller hub pin states expansion bus interface 12 ebus_ad[8:0] vccaux3_3 defined defined defined defined defined ebus_ad[24:9] vccaux3_3 defined defined defined defined defined ebus_we# vccaux3_3 defined defined defined defined defined ebus_oe#/ ebus_cas# vccaux3_3 defined defined defined defined defined ebus_ce1# vccaux3_3 defined defined defined defined defined ebus_ce2# vccaux3_3 defined defined defined defined defined ebus_be0# vccaux3_3 defined defined defined defined defined ebus_be1# vccaux3_3 defined defined defined defined defined ebus_clk2 vccaux3_3 defined defined defined defined defined ebus_adv#/ ebus_ras# vccaux3_3 defined defined defined defined defined ebus_frst# vccaux3_3 defined defined defined defined defined ebus_alat/ ebus_cke vccaux3_3 defined defined defined defined defined r-232 interface signals rs232_dtr vccaux3_3 defined defined defined defined defined rs232_sout vccaux3_3 defined defined defined defined defined miscellaneous signals spkr vcc33 high-z with internal pull- down low defined off off sdp0[2:0] vccaux3_3 defined defined defined defined defined sdp1[2:0] vccaux3_3 defined defined defined defined defined sdp2[7:0] vccaux3_3 defined defined defined defined defined sdp3_0/led0_0 vccaux3_3 defined defined defined defined defined sdram_ad12/ spd3_1/led0_1 vccaux3_3 defined defined defined defined defined sdram_ba0/ sdp3_2/led0_2 vccaux3_3 defined defined defined defined defined sdram_ba1/ sdp3_3/led0_3 vccaux3_3 defined defined defined defined defined sdp3_4/led1_0 vccaux3_3 defined defined defined defined defined sdram_a9/ sdp3_5/led1_1 vccaux3_3 defined defined defined defined defined sdram_a10/ sdp3_6/led1_2 vccaux3_3 defined defined defined defined defined sdram_a11/ sdp3_7/led1_3 vccaux3_3 defined defined defined defined defined ac?97 interface acz_rst# vccpsus low low cold reset bit (high) low low acz_sdout vcc33 low running low off off table 4-3. power plane and states for output and i/o signals for intel ? 631xesb/ 632xesb i/o controller hub (sheet 5 of 6) signal name power plane during pltrst#4 / rsmrst# 5 immediately after pltrst# 4 / rsmrst# 5 s1 s3 s4/s5
96 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? 631xesb/632xesb i/o controller hub pin states notes: 1. intel ? 631xesb/632xesb i/o controller hub drives these signals low before pwrok rising and high after the cpu reset. 2. gpo[18] will toggle at a frequency of approximately 1 hz when the intel ? 631xesb/632xesb i/o controller hub comes out of reset. 3. cpupwrgd is an open-drain output that represents a logical and of the intel ? 631xesb/632xesb i/o controller hub?s vrmpwrgd and pwrok signals, and thus will be driven low by intel ? 631xesb/632xesb i/o controller hub when either vrmpwrgd or pwrok are inactive. during boot, or during a hard reset with power cycling, cpupwrgd will be expected to transition from low to high-z. 4. the states of vcc33 signals are taken at the times during pltrst# and immediately after pltrst#. 5. the states of vccpsus signals are taken at the times during rsmrst# and immediately after rsmrst#. 6. intel ? 631xesb/632xesb i/o controller hub drives these signals low before pwrok rising and low after the cpu reset. 7. gpio[25] transitions from pulled high internally to actively driven following the deassertion of the rsmrst# pin. 8. slp_s5# signals will be high in the s4 state. 9. low until intel high definition audio controller reset bit set (d27:f0:offset hdbar+08h:bit 0), at which time acz_rst# will be high and acz_bit_clk will be running. 10. petp/n[4:1] high until port is enabled by software. 11. sdataout0/gpo[23], sdataout1/gpio[32], sload/gpo[21sclk/gpo[20], requires 2k ohm external pull-up. 12. since all the bmc related interfaces (flash, eeprom and expansion bus) resident on the standby power rail, they are expected to be active at all states and t hus have no default values at any of the states listed in the table. all signal's status is driven by bios or software. acz_sync vcc33 low running low off off intel? high definition audio interface acz_rst# vccpsus low low 9 high low low acz_sdout vcc33 high-z with internal pull- down running low off off acz_sync vcc33 high-z with internal pull- down running low off off acz_bit_clk vcc33 high-z with internal pull- down low9 low off off unmuxed gpio signals gpo[18] vcc33 high see note 1 defined off off gpo[19] vcc33 high high defined off off sclk/gpo[20]11 vcc33 undefined toggling defined off off sload/gpo[21]11 vcc33 undefined low defined off off sdataout0/ gpo[23]11 vcc33 undefined low defined off off gpio[24] vccpsus high high defined defined defined gpio[25] vccpsus high high2 defined defined defined gpio[28:27] vccpsus high high defined defined defined sdataout1/ gpio[32]11 vcc33 undefined low defined off off gpio[34:33] vcc33 high high defined off off table 4-3. power plane and states for output and i/o signals for intel ? 631xesb/ 632xesb i/o controller hub (sheet 6 of 6) signal name power plane during pltrst#4 / rsmrst# 5 immediately after pltrst# 4 / rsmrst# 5 s1 s3 s4/s5
intel ? 631xesb/632xesb i/o controller hub datasheet 97 intel ? 631xesb/632xesb i/o controller hub pin states 4.4 power planes for input signals ta bl e 4 - 4 shows the power plane associated with each input signal, as well as what device drives the signal at various times. valid states include: ?high ?low ? static: will be high or low, but will not change ? driven: will be high or low, and is allowed to change ? running: for input clocks table 4-4. power plane for input signals for intel ? 631xesb/632xesb i/o controller hub (sheet 1 of 3) signal name power well driver during reset s1 s3 s4/s5 a20gate vcc33 external microcontroller static low low acz_bit_clk (ac ?97 mode) vcc33 ac?97 codec low low low acz_sdin[2:0] (ac ?97 mode) vccpsus ac?97 codec low low low acz_sdin[2:0] (intel high definition audio mode) vccpsus intel high definition audio codec low low low clk14 vcc33 clock generator running low low clk48 vcc33 clock generator running low low ddreq vcc33 ide device static low low esiclk100p, esiclk100n vcc33 clock generator running low low ferr# v_cpu_io processor static low low gpi[6] vcc33 external device or external pull-up/pull-down driven off off gpi[7] vcc33 external device or external pull-up/pull-down driven off off gpi[8] vccpsus external device or external pull-up/pull-down driven driven driven pe0rp[3:0], pe0rn[3:0] vcc1_5 pci express device driven driven driven pe1rp[3:0], pe1rn[3:0] vcc1_5 pci express device driven driven driven pe2rp[3:0], pe2rn[3:0] vcc1_5 pci express device driven driven driven ideirq vcc33 ide static low low intruder# vccrtc external switch driven driven driven intvrmen vccrtc external pull-up or pull- down driven driven driven iordy vcc33 ide device static low low ser_clk_in vccaux3_3 external phy or xtal running running running lan_pwr_good vccaux3_3 external logic high high high flsh_so vccaux3_3 external serial flash driven driven driven ee_do vccaux3_3 external eeprom driven driven driven
98 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? 631xesb/632xesb i/o controller hub pin states serp0 vccaux3_3 82563eb/82564eb dual/ single-phy device driven driven driven sern0 vccaux3_3 82563eb/82564eb dual/ single-phy device driven driven driven serp1 vccaux3_3 82563eb/82564eb dual/ single-phy device driven driven driven sern1 vccaux3_3 82563eb/82564eb dual/ single-phy device driven driven driven link_0 vccaux3_3 fiber transceiver driven driven driven link_1 vccaux3_3 fiber transceiver driven driven driven seicompi vccaux3_3 circuit on board (internal pull-up) driven driven driven rs232_cts vccaux3_3 external rs232 device driven driven driven rs232_dcd vccaux3_3 external rs232 device driven driven driven rs232_dsr vccaux3_3 external rs232 device driven driven driven rs232_ri vccaux3_3 external rs232 device driven driven driven rs232_sin vccaux3_3 external rs232 device driven driven driven ldrq[0]# vcc33 lpc devices high low low ldrq[1]# vcc33 lpc devices high low low oc[7:0]# vccpsus external pull-ups driven driven driven pciclk vcc33 clock generator running low low pme# vccpsus internal pull-up driven driven driven pwrbtn# vccpsus internal pull-up driven driven driven pwrok vccrtc system power supply driven low low rcin# vcc33 external microcontroller high low low req[6:0]# vcc33 pci master driven low low ri# vccpsus serial port buffer driven driven driven rsmrst# vccrtc external rc circuit high high high rtcrst# vccrtc external rc circuit high high high sata_clkp, sata_clkn vcc33 clock generator running low low sata[5:0]rxp sata[5:0]rxn vcc33 sata drive driven driven driven satarbias# vcc33 external pull-down driven driven driven sata[5:0]gp/ gpi[13, 12, 31:29, 26] vcc33 external device or external pull-up/pull-down driven driven driven serr# vcc33 pci bus peripherals high low low smbalert# vccpsus external pull-up driven driven driven sys_reset# vccpsus external circuit driven driven driven thrm# vcc33 thermal sensor driven low low thrmtrip# v_cpu_io thermal sensor driven low low tp[0] vccpsus external pull-up high high high usbrbias# vccpsus external pull-down driven driven driven vrmpwrgd vcc33 processor voltage regulator high low low table 4-4. power plane for input signals for intel ? 631xesb/632xesb i/o controller hub (sheet 2 of 3) signal name power well driver during reset s1 s3 s4/s5
intel ? 631xesb/632xesb i/o controller hub datasheet 99 intel ? 631xesb/632xesb i/o controller hub pin states wake# vccpsus external pull-up driven driven driven hpx_sic 3.3v high-z undefined low low hpx_sid 3.3v high-z undefined low low hpx_sil# 3.3v high-z pulled high low low hpxslot[3] 3.3v high-z undefined low low hpxslot[2] 3.3v high-z undefined low low hpxslot[1] 3.3v high-z undefined low low hpxslot[0] 3.3v high-z undefined low low px133en 3.3v high-z undefined low low pxirq_[15]# 3.3v high-z pulled high low low pxirq_[14]# 3.3v high-z pulled high low low pxirq_[13]# 3.3v high-z pulled high low low pxirq_[12]# 3.3v high-z undefined low low pxirq_[11]# 3.3v high-z undefined low low pxirq_[10]# 3.3v high-z pulled high low low pxirq_[9]# 3.3v high-z pulled high low low pxirq_[8]# 3.3v high-z pulled high low low pxirq_[7]# 3.3v high-z pulled high low low pxirq_[6]# 3.3v high-z pulled high low low pxirq_[5]# 3.3v high-z pulled high low low pxirq_[4]# 3.3v high-z pulled high low low pxirq_[3]# 3.3v high-z pulled high low low pxirq_[2]# 3.3v high-z pulled high low low pxirq_[1]# 3.3v high-z pulled high low low pxirq_[0]# 3.3v high-z pulled high low low pxpcixcap 3.3v high-z pulled high low low pxpme# 3.3v high-z undefined low low pxreq_[4]# 3.3v high-z pulled high low low pxreq_[3]# 3.3v high-z pulled high low low pxreq_[2]# 3.3v high-z pulled high low low pxreq_[1]# 3.3v high-z pulled high low low pxreq_[0]# 3.3v high-z pulled high low low pxserr# 3.3v high-z pulled high low low pxstrap0 3.3v high-z pulled low low low sclk 3.3v high-z high-z low low smbus[5] 3.3v high-z undefined low low smbus[3] 3.3v high-z undefined low low smbus[2] 3.3v high-z undefined low low smbus[1] 3.3v high-z undefined low low table 4-4. power plane for input signals for intel ? 631xesb/632xesb i/o controller hub (sheet 3 of 3) signal name power well driver during reset s1 s3 s4/s5
100 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? 631xesb/632xesb i/o controller hub pin states
intel ? 631xesb/632xesb i/o controller hub datasheet 101 functional description 5 functional description this chapter describes the functions and interfaces of the intel ? 631xesb/632xesb i/o controller hub. intel ? 631xesb/632xesb i/o controller hub support configurations are one x8 balanced configuration and two x4 connection as lan centric configuration (as figure 5-1 and figure 5-2 show). figure 5-1. intel ? 631xesb/632xesb i/o controller hub device diagram ? balanced intel? 5000 series chipsets pci express pci express upstream port 4 bus m, dev 0, fn 0 ioxapic endpoint bus m, dev 0, fn 1 pci express to pci -x bridge / pci-x hot plug capability bus m, dev 0, fn 3 pci express downstream port 1/ pci express hot -plug capability bus p, dev 0, fn 0 pci express downstream port 2/ pci express hot -plug capability bus p, dev 1, fn 0 pci express downstream port to integrated lan bus p, dev 2, fn 0 lan controller bus n, dev 0, fn 0 ide redirection controller bus n, dev 0, fn 2 serial port redirection controller bus n, dev 0, fn 3 uhci redirecetion controller bus n, dev 0, fn 5 bt controller bus n, dev 0, fn 7 ipmi/kcs0 bus n, dev 0, fn 4 lan controller bus n, dev 0, fn 1 esi esi-to- pci bridge bus 0, dev 30, fn 0 ac 97 audio controller bus 0, dev 30, fn 2 ac 97 modem controller bus 0, dev 30, fn 3 pci-to- lpc bridge bus 0, dev 31, fn 0 ide controller bus 0, dev 31, fn 1 usb 1.1 port 0,1 bus 0, dev 29, fn 0 pci express port 0a bus 0, dev 28, fn 0 sata controller bus 0, dev 31, fn 2 usb 1.1 port 2,3 bus 0, dev 29, fn 1 usb 1.1 port 6,7 bus 0, dev 29, fn 3 usb 1.1 port 4,5 bus 0, dev 29, fn 2 pci express port 0c bus 0, dev 28, fn 2 pci express port 0b bus 0, dev 28, fn 1 pci express port 0d bus 0, dev 28, fn 3 usb2 host bus 0, dev 29, fn 7 smbus controller bus 0, dev 31, fn 3 high definition audio bus 0, dev 27, fn 0
102 intel ? 631xesb/632xesb i/o controller hub datasheet functional description as shown below, intel ? 631xesb/632xesb i/o controller hub configurations are determined with power-on strapping. figure 5-2. intel ? 631xesb/632xesb i/o controller hub device diagram ? lan centric intel? 5000 series chipsets esi pci express pci express upstream port 4 bus m , dev 0, fn 0 ioxapic endpoint bus m , dev 0, fn 1 pci express to pci - x bridge / pci - x hot plug capability bus m , dev 0, fn 3 pci express downstream port 1/ pci express hot - plug capability bus p , dev 0, fn 0 pci express downstream port 2/ pci express hot - plug capability bus p , dev 1, fn 0 lan controller bus n , dev 0, fn 0 ide redirection controller bus n , dev 0, fn 2 serial port redirection controller bus n , dev 0, fn 3 uhci redirection controller bus n , dev 0, fn 5 bt controller bus n , dev 0, fn 7 ipmi/kcs0 bus n , dev 0, fn 4 esi - to- pci bridge bus 0, dev 30 , fn 0 ac 97 audio controller bus 0, dev 30 , fn 2 ac 97 modem controller bus 0, dev 30 , fn 3 pci - to- lpc bridge bus 0, dev 31 , fn 0 ide controller bus 0, dev 31 , fn 1 usb 1.1 port 0,1 bus 0, dev 29 , fn 0 lan controller bus n , dev 0, fn 1 pci express port 0a bus 0, dev 28 , fn 0 sata controller bus 0, dev 31 , fn 2 usb 1.1 port 2, 3 bus 0, dev 29 , fn 1 usb 1.1 port 6, 7 bus 0, dev 29 , fn 3 usb 1.1 port 4,5 bus 0, dev 29 , fn 2 pci express pci express port 0c bus 0, dev 28 , fn 2 pci express port 0b bus 0, dev 28, fn 1 pci express port 0d bus 0, dev 28, fn 3 usb 2 host bus 0, dev 29 , fn 7 smbus controller bus 0, dev 31, fn 3 high definition audio bus 0, dev 27 , fn 0 table 5-1. strap values for each configuration configuration npecfg lan bw centric configuration 1 balanced configuration 0
intel ? 631xesb/632xesb i/o controller hub datasheet 103 functional description 5.1 pci express* bridge, switch, and endpoints as figure 5-1 and figure 5-2 show, intel ? 631xesb/632xesb i/o controller hub couples on its ?south? interfaces to three individual x4 pci express links (one is the internal link for intel ? 631xesb/632xesb i/o controller hub lan controller, the other two external links may be combined into a single x8 link by using a strapping pin during reset. refer to section 2.28 ) and to one 64-bit pci/pci-x secondary bus interface. intel ? 631xesb/632xesb i/o controller hub ?north? pci express interface is the logical primary bus, the physical pci-x bus segment becomes a separate secondary bus with a pci express to pci-x bridge corresponding to function 3. the upstream pci express port provides the link to another secondary pci bus with a pci express switch model. the standard hot -plug controller (shpc) associated with the pci-x bus segment appears as a capability of the pci express to pci-x bridge. the i/oxapic controller resides as a separate pci express function. ? pci express upstream port (bm:d0:f0) . intel ? 631xesb/632xesb i/o controller hub implements a upstream pci express port that provides the link to another secondary pci bus with a pci express switch model. ? pci express downstream ports (bp:d0:f0, bp:d1:f0, bp:d2:f0) . intel ? 631xesb/632xesb i/o controller hub implements a downstream pci express port that provides the link to another secondary pci bus with a pci express switch model. intel ? 631xesb/632xesb i/o controller hub integrates three individual x4 pci express links on this secondary pci bus (bp:d2:f0 are internally link for intel ? 631xesb/632xesb i/o controller hub lan controllers and bmc functions, bp:d0:f0, bp:d1:f0 are for external links) ? i/oxapic devices (bm:d0:f1) . intel ? 631xesb/632xesb i/o controller hub implements a variation of the apic known as the i/oxapic. it resides on the primary bus. ? standard hot-plug controller (bm:d0:f3) . intel ? 631xesb/632xesb i/o controller hub supports a single shpc controller. this standard hot-plug controller appears as a capability of its associated pci express to pci-x bridge. ? pci express to pci-x bridge (bm:d0:f3) . intel ? 631xesb/632xesb i/o controller hub implements the buffering and control logic between the pci express and the pci-x buses. the pci bus arbitration is handled by these pci devices. the pci decoder in this device must decode the ranges for pci express to the mch. this register set also provides support for reliability, availability, and serviceability (ras). 5.1.1 pci express* upstream ports 5.1.1.1 features the following list summarizes some of the features of the intel ? 631xesb/632xesb i/o controller hub pci express upstream ports: ? full interoperability with intel ? 5000 series chipsets ? raw bit-rate on the data pins of 2.5 gbit/s, resulting in a raw bandwidth per pin of 250 mb/s ? x8, x4 modes of operation ? maximum realized bandwidth (in x8 mode) on pci express interface is 2 gb/s in each direction simultaneously, for an aggregate of 4 gb/s ? pleisochronous operation with automatic clock extraction and phase correction
104 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ? hierarchical pci configuration mechanism for downstream devices ? full 64-bit inbound addressing supported as defined by pci express specifications ? 64-bit outbound addressing support (that is, capability to generate dac transactions on pci) ? forwarding of relaxed ordering pci-x transaction attribute by way of pci express relaxed ordering type 1 ordering attribute feature ? forwarding of non-snooped pci-x transaction attribute by way of a non-snooped pci express attribute ? full-speed self-test and diagnostic (ibist) functionality ? automatic link initialization, configuration and re-training out of reset ? runtime detection and recovery for loss of link synchronization ? 32-bit crc (cyclic redundancy checking) covering all transmitted data packets ? 16 bit crc on all link message information ? hardware link-level retry to recover from transient errors without system failure (software transparent) ? support for non-addressable electrical repeater devices in-line on any link to increase routing distances ? support of in-band power management event, ras error, boot interrupt, and component reset signaling ? support of msi and sapic interrupt messaging over pci express ? vc#0 only support. no isoc support ? no support for beacon 5.1.2 pci express* to pc i-x* bridge (bm:d0:f3) intel ? 631xesb/632xesb i/o controller hub implements the buffering and control logic between the pci express and the pci-x buses. the pci bus arbitration is handled by these pci devices. the pci decoder in this device must decode the ranges for pci express to the mch. this register set also provides support for reliability, availability, and serviceability (ras). the north pci express interface is the logi cal primary bus. the physical pci-x bus segment becomes a separate secondary bus with a pci express to pci-x bridge. 5.1.2.1 features of pci-x* interface ? pci spec rev 2.3 compliant ? pci-x 1.0b spec compliant ? 64-bit 66 mhz, 3.3 v not 5 v tolerant ? 2-level programmable round-robin internal arbiter with mtt ? six external req/gnt pairs for internal arbiter, but only three pairs are available when operating shpc in parallel mode ? pci clock-feed support from an external source for asynchronous primary and secondary domain operation ? programmable bus parking on either the last agent or always on intel ? 631xesb/ 632xesb i/o controller hub
intel ? 631xesb/632xesb i/o controller hub datasheet 105 functional description ? on-die termination of 8.33 k ohms @ 40% ? 64-bit addressing, inbound and ou tbound and support for dac command ? outbound lock# support ? no inbound lock# support ? pci fast back-to-back capable as target ? up to 4 active and 4 pending inbound pci-x memory read transactions and up to 2 outbound delayed (memory read, i/o read and write and configuration read and write) transaction ? tunable inbound read prefetch algorithm for pci mrm/mrl commands ? no device id messaging (dim) support ? no interface low power state support ? no ecc support 5.1.2.2 features of hot-plug interface ? pci standard hot-plug controller specification rev 1.0 compliant ? dedicated controller for pci(x) bus segment ? support for 6 slots maximum ? parallel mode operation for 1 and 2 slot systems. slot interface logic not needed. ? serial mode operation for other systems with hot-plug slots from 3 to 6. slot interface logic needed to serialize and de-serialize information from intel ? 631xesb/632xesb i/o controller hub. ? 1-slot-no-glue parallel mode operation when the number of slots controlled is one and there are no other devices on the pci bus. no on-board q-switches are needed for bus isolation in this mode ? in-box and out-of-box pci express system solution support with firmware initialization of the hot-plug controller. there is no prom/pin-strap support in intel ? 631xesb/632xesb i/o controller hub for pci express slot/cabled-out-of- box applications. ? acpi support for intel ? 631xesb/632xesb i/o controller hub-shpc with in-band pci express messaging 5.1.2.3 initialization when hot-plug is enabled (hpx_slot[3]=1) for a pci segment in this mode, intel ? 631xesb/632xesb i/o controller hub always powers up in the 33 mhz pci mode regardless of the capabilities of the cards and the bus segment. bios would then initialize the bus to the proper mode and frequency at post. when hot-plug is disabled (hpx_slot[3]=0) for a pci segment, intel ? 631xesb/632xesb i/o controller hub samples the m66en, pcixcap, mode2, m266en and the px133en pins, to determine the mode and frequency of operation. intel ? 631xesb/632xesb i/o controller hub uses the encoding table ( table 5-2 ) for the m66en, pcixcap and px133en pins, to set the mode and frequency of operation. ?dc? in the table below refers to a don?t care function and vcc refers to 3.3 v.
106 intel ? 631xesb/632xesb i/o controller hub datasheet functional description once intel ? 631xesb/632xesb i/o controller hub identifies the capabilities of the pci bus devices, it drives the initialization pattern on devsel#, stop#, trdy#, frame# and irdy# pins per ta b l e 5 - 3 to initialize the pci bus devices to the proper mode and frequency. the patterns shown in the table below are guaranteed to be stable on the rising edge of pcirst# pin. refer to the pci specifications for details of the timing of these patterns with respect to the pcirst# pin. note: intel ? 631xesb/632xesb i/o controller hub never drives these patterns on the rising edge of pcirst# signal. these patterns could though appear before the signals settle to a steady value at the rising edge of pcirst#. 5.1.2.4 transactions supported 5.1.2.4.1 pci mode the table below lists all the transactions supported by intel ? 631xesb/632xesb i/o controller hub on the pci bus. note that pci command encodings that do not correspond to the transactions listed below are ignored by intel ? 631xesb/632xesb i/ o controller hub. intel ? 631xesb/632xesb i/o controller hub supports full 64-bit addressing inbound and outbound. this implies that intel ? 631xesb/632xesb i/o controller hub as a target can accept dual address cycles and as a master can generate dual address cycles. table 5-2. m66en, pcixcap, and px133en pin encoding table m66en pcixcap px133en pci bus mode pci bus frequency hot-plug enabled dc dc dc pci 33 mhz hot-plug disabled gnd < 0.11vcc dc pci 33 mhz vcc < 0.11vcc dc pci 66 mhz dc < 0.89vcc & > 0.11vcc dc pci-x* 66 mhz dc > 0.89vcc gnd pci-x 100 mhz dc > 0.89vcc vcc pci-x 133 mhz table 5-3. pci-x* initialization pattern driven by intel ? 631xesb/632xesb i/o controller hub devsel# stop# trdy# mode clock period (ns) clock freq (mhz) max min min max deasserted deasserted deasserted pci 30 0 33 pci 30153366 deasserted deasserted asserted pci-x* mode1 20 15 50 66 deasserted asserted deasserted pci-x mode1 15 10 66 100 deasserted asserted asserted pci-x mode1 10 7.5 100 133
intel ? 631xesb/632xesb i/o controller hub datasheet 107 functional description 5.1.2.4.2 pci-x* mode the table below lists the transactions that intel ? 631xesb/632xesb i/o controller hub supports when the pci interface is in the pci-x mode. pci-x commands that are not any of the commands listed in the table are ignored by intel ? 631xesb/632xesb i/o controller hub. intel ? 631xesb/632xesb i/o controller hub supports the pci-x memory block write command in support of dma writes from pci express. this is new in intel ? 631xesb/632xesb i/o controller hub. table 5-4. pci transactions supported transaction c/be[3:0]# encoding master target interrupt acknowledge 0000 no no special cycle (pci express type1-to- special cycle) 0001 yes no i/o read 0010 yes no i/o write 0011 yes no memory read 0110 yes yes memory write 0111 yes yes configuration read 1010 yes no configuration write 1011 yes no memory read multiple 1100 no yes dual address cycle 1101 yes yes memory read line 1110 no yes memory write and invalidate 1111 no yes lock transaction - yes no table 5-5. pci-x* transactions supported (sheet 1 of 2) transaction encoding master target length (bytes max) master target interrupt acknowledge 0000 no no n/a n/a special cycle (pci express type1- to-special cycle) 0001 yes no 4 1 n/a i/o read 0010 yes no 41 41 i/o write 0011 yes no 41 41 deviceid message 0101 no no n/a n/a memory read dword 0110 yes yes 4 4 memory write 0111 yes yes 128 4k alias to memory read block 1000 no yes n/a 4k alias to memory write block 1001 no yes n/a 4k configuration read 1010 yes no 41 42 configuration write 1011 yes no 41 42 split completion 1100 yes yes 4k 1283 dual address cycle 1101 yes yes - -
108 intel ? 631xesb/632xesb i/o controller hub datasheet functional description notes: 1. naturally aligned dword lengths. 2. naturally aligned dword lengths. 3. naturally aligned to 128 byte address boundaries. 5.1.2.5 pci-x* hot-plug controller the following list summarizes some of the features of the intel ? 631xesb/632xesb i/o controller hub pci express upstream interface: ? pci standard hot-plug controller specification rev 1.0 compliant ? support for 6 slots maximum ? parallel mode operation for 1 and 2 slot systems. slot interface logic not needed. ? serial mode operation for other systems with hot-plug slots from 3 to 6. slot interface logic needed to serialize and de-serialize information from intel ? 631xesb/632xesb i/o controller hub ? 1-slot-no-glue parallel mode operation when the number of slots controlled is one and there are no other devices on the pci bus. no on-board q-switches are needed for bus isolation in this mode ? in-box and out-of-box pci express system solution support with firmware initialization of the hot-plug controller. there is no prom/pin-strap support in intel ? 631xesb/632xesb i/o controller hub for pci express slot/cabled-out-of- box applications ? acpi support for intel ? 631xesb/632xesb i/o controller hub-shpc with in-band pci express messaging 5.1.2.5.1 introduction intel ? 631xesb/632xesb i/o controller hub integrates a standard hot-plug controller for the pci-x port that is compliant with the pci standard hot-plug controller specification revision 1.0. this standard applies to both pci and pci-x modes of operation. the new standard is motivated by the concept that standardization of more features of the pci hot-plug specification will reduce both the cost of hardware and software development time. differences between the pci hot-plug model and the standard hot-plug model include standardization of the following features: ? power and attention indicators ? manually-operated retention latch (mrl) ?mrl sensor ? s/w programming model ?slot numbering ? attention button memory read block 1110 yes yes 128 3 4k memory write block 1111 yes yes 128 3 4k lock transaction - yes no - - table 5-5. pci-x* transactions supported (sheet 2 of 2) transaction encoding master target length (bytes max) master target
intel ? 631xesb/632xesb i/o controller hub datasheet 109 functional description a new register set is defined for the shpc capabilities list and the shpc working register set. the new registers are defined as a pci-pci bridge capability in the pci-x configuration registers and not as a separate pci controller device. the new specification also fixes the architectural proximity of the shpc function to the pci slots it controls. per the new specification, the intel ? 631xesb/632xesb i/o controller hub may control slots only on its secondary bus and there must be a separate shpc capability associated with the logical pci-pci bridge configuration space, the standard hot-plug controller being a capability of the pci-pci bridge. for details on the operation of the standard hot-plug controller, refer to the pci standard hot-plug controller specification revision 1.0 . 5.1.2.5.2 system architecture the pci/ pci-x standard hot-plug controller in intel ? 631xesb/632xesb i/o controller hub can control a maximum of 6 slots in the system. the interface between intel ? 631xesb/632xesb i/o controller hub and the hot-plug system board logic could be either serial or parallel. in the serial mode of operation, external glue logic is needed to interface intel ? 631xesb/632xesb i/o controller hub to the hot-plug slot side interface. in parallel mode, there is no glue logic needed and intel ? 631xesb/632xesb i/o controller hub directly controls and receives status from the slot control interface, one set of signals per slot. intel ? 631xesb/632xesb i/o controller hub supports parallel mode only when the number of hot-plug slots is either one or two. if the number of hot-plug slots is greater than two, then intel ? 631xesb/632xesb i/o controller hub?s standard hot-plug controller switches to the serial mode. intel ? 631xesb/632xesb i/o controller hub does not support parallel operation when the number of hot-plug slots is greater than two nor does it support serial operation when the number of hot-plug slots is less than three. in the parallel mode, when the number of hot-plug slots being controlled is one and the only one in the system, and there is only one pci device on the segment in that hog-plug slot, then intel ? 631xesb/632xesb i/o controller hub provides the 1-slot-no-glue mode where the on-board fet switches (otherwise needed to isolate the intel ? 631xesb/632xesb i/o controller hub?s pci buffers from the slot) are no longer needed. here is a summary of the three different modes in which the intel ? 631xesb/632xesb i/o controller hub?s standard hot-plug controller can function. figure 5-3 below illustrates the general standard hot-plug system architecture with two pci slots. the slot control logic here refers to the board glue logic consisting of a pair of serializer and de-serializer needed to convert between serial and parallel data from to/ from intel ? 631xesb/632xesb i/o controller hub. this slot control logic is required only in the serial mode of operation (number of slots greater than 2). when in parallel mode, intel ? 631xesb/632xesb i/o controller hub has direct access to the power controller, leds, bus switches and the attention button. the slot control logic is not needed anymore in this mode. the bus switches shown in the picture could be removed when intel ? 631xesb/632xesb i/o controller hub?s standard hot-plug controller is programmed for the 1-slot-no-glue mode. table 5-6. standard hot-plug controller modes hot-plug mode glue logic fet isolation serial yes yes parallel no yes parallel 1-slot-no-glue no no
110 intel ? 631xesb/632xesb i/o controller hub datasheet functional description mode determination the standard hot-plug controller is enabled and mode selected through pin strappings and these strappings are sampled on the rising edge of pwrok signal. the table below shows the information. when the standard hot-plug controller is disabled (hxslot[3] = ?0?), the standard hot-plug capability registers and the working register set are hidden from software and the standard hot-plug controller is essentially disabled. the number of standard hot-plug slots the controller handles is logged into the slot configuration register at offset 0ch in the shpc working register set. this register is read-only register and cannot be written to by bios to change the mode of operation of the controller in intel ? 631xesb/632xesb i/o controller hub (between serial and parallel). figure 5-3. standard hot-plug system architecture for pci-x* intel ? slot control logic power controller bus switches p c i s l o t 1 button power controller bus switches p c i s l o t 2 button pci bus slot side interface slot side interface 631xesb/632xesb i/o controller hub table 5-7. standard hot-plug controller mode determination (sheet 1 of 2) hxslot[3:0] # slots (intel ? 631xesb/632xesb i/o controller hub shpc mode) hot-plug disabled 0000 1 slot 0001 2 slots 0010 3 slots 0011 4 slots
intel ? 631xesb/632xesb i/o controller hub datasheet 111 functional description note: using a reserved encoding could cause undefined behavior slot control signals this section discusses the signals needed to control the slot side interface. this is a brief discussion of the their operation. for a more detailed discussion, refer to the standard hot-plug specification. these signals are direct inputs and outputs from intel ? 631xesb/632xesb i/o controller hub in the parallel mode. in the serial mode, these signals are sent or received serially to or from the slot side interface. output control these seven signals are output from intel ? 631xesb/632xesb i/o controller hub (serial or parallel) and control the slot side interface to do various functions from connecting the slot to the bus to turning on/off the leds. ? hxpwren : power enable signal connected to on-board slot-specific power controller to regulate current and voltage of the slot. ? hxclken#, hxbusen# : clock and bus enable signals that connect the pci bus and clock signal of the slot to the system bus pci bus by way of fet isolation switches. ? hpx_rst# : connected to the pcirst# pin of the slot. ? hxatnled# : connected to attention led which is yellow or amber in color. ? hxpwrled#: connected to the power led which is green in color. input control these eight signals are used to poll the status of the hot-plug slots for such things are mrl switch closure and power fault in the slot power controller. ? hxpwrflt#: power controller fault indication for over-current / under-volt indication. when asserted, the intel ? 631xesb/632xesb i/o controller hub, if enabled, immediately asserts reset to the slot and disconnects the slot from the bus. 0100 5 slots 0101 6 slots 0110 7 slots 0111 8 slots hot-plug enabled 1000 reserved 1 1001 1-slot (parallel) 1010 2-slot (parallel) 1011 3-slot (serial) 1100 4-slot (serial) 1101 5-slot (serial) 1110 6-slot (serial) 1111 1-slot-no-glue (parallel) table 5-7. standard hot-plug controller mode determination (sheet 2 of 2) hxslot[3:0] # slots (intel ? 631xesb/632xesb i/o controller hub shpc mode)
112 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ? hxprsnt1#, hxprsnt2#: these signals are used to indicate to intel ? 631xesb/632xesb i/o controller hub whether a card is installed in the slot or not and its power requirements. these signals are directly connected to the present bits on the pci card ? hxm66en: determines if a card is capable of running at 66 mhz in the conventional pci mode. ? hxpcixcap1 and hxpcixcap2 : determines if a slot is pci-x capable, and if so, whether it can operate at 133 mhz. pcixcap1 and 2 represent a decoded version of the three-state pcixcap pin present on each slot. pcixcap2 represents whether the pcixcap pin was ground or not ground (that is, pci-x capable), and pcixcap1 represents whether the pcixcap pin was ?low? (66 mhz only) or ?high? (133 mhz capable). the system initially powers up at 33 mhz pci, and all hot-plug slots are scanned by firmware. if the system is capable, the bus is reset to run in the appropriate pci-x mode. ? hxmrl#: manually operated retention latch sensor input. a logic low input that is connected directly to the mrl sensor. when asserted it indicates that the mrl latch is closed. if a platform does not support mrl sensors, this must to be wired to a low logic level (mrl closed). ? hxbutton#: attention button input signal connected to the slot?s attention button. when low, indicates that the operator has requested attention. if attention button is not implemented, then this input must be wired to a high logic level. parallel mode operation in the parallel mode, intel ? 631xesb/632xesb i/o controller hub provides 6 slot control outputs and 8 slot control inputs for each of the two slots it can control. intel ? 631xesb/632xesb i/o controller hub operates in this mode, if the number of hot-plug slots implemented is 1 or 2. if the number of slots is 1, then intel ? 631xesb/ 632xesb i/o controller hub ignores the second port. platform must tie this port to its benign value. one-slot-no-glue parallel mode operation when only 1 slot is implemented, the bus isolation switches are not required as there are no other devices on the pci bus other than that one slot. there is no reason to isolate the card from intel ? 631xesb/632xesb i/o controller hub?s i/o buffers. prsnt1# prsnt2# meaning 1 1 no expansion board present 0 1 expansion board present, 25 w maximum 1 0 expansion board present, 15 w maximum 0 0 expansion board present, 7.5 w maximum pcixcap1 pcixcap2 meaning 1 1 133mhz pci-x* mode 0 1 66mhz pci-x mode 10reserved 00pci mode
intel ? 631xesb/632xesb i/o controller hub datasheet 113 functional description intel ? 631xesb/632xesb i/o controller hub enters this mode if hxslot[3:0] is a ?1111.? there are special requirements for how the pci bus signals are handled in this mode. driving bus to ground when pci card is disconnected when in single-slot-no-glue mode, all pci signals are to be driven to ground whenever pci card is disconnected. the signals that must be driven to ground are the following: ? ad[63:0], c/be[7:0]#, par, par64, req64#, ack64# ? frame#, irdy#, trdy#, stop#, devsel#, lock#, idsel ?pcirst# ? gnt[4:0]#, req[5:4]#, req[1:0]# ? perr#, serr# ? pclkout[4:0] ? irq[7:0], pme# these signals will be driven back to their normal pci levels at various times in the clock connection process. when a card is reconnected to the bus, it follows the following algorithm: ? power is applied to the card. this does not affect any of the pci signals which are now being driven to ground. ? after a fixed (refer to shpc spec) period of time, the clock is connected to the card. when this occurs, pclkout[4:0] will no longer be driven to ground, but will toggle normally (assuming that sw has not disabled that particular pclkout pin). in hot- plug terms, this is the equivalent of the ?clken#? signal. ? after another fixed (refer to shpc spec) period of time, the bus is connected to the card. when this occurs, the remaining signals listed above which were driven to ground will be driven to their default values, except for reset, which will continue to be driven to ground. the new signal values are listed below: ? ad[63:0], c/be[7:0]#, par, par64, req64#, ack64# ? driven ? frame#, irdy#, trdy#, stop#, devsel#, lock#, idsel ? driven to vcc for one clock, then tri-stated ? gnt#, req# ? driven to vcc for one clock, then tri-stated ? perr#, serr# ? driven to vcc for one clock, then tri-stated ? irq[7:0] tri-states, pme# tristates in hot-plug terms, this is the equivalent of the ?busen#? signal. ? after a final fixed period of time, the card is taken out of reset. when this occurs, the pcirst# pin will be continuously driven to vcc. aborting outbound pci cycles when card is disconnected when a pci card is not present in a multi-slot system, it has been isolated. this means that all cycles destined for that particular card (peer traffic or other cpu based traffic) will master abort on the pci bus because no devsel# will be driven. to be consistent in a single-slot system, the intel ? 631xesb/632xesb i/o controller hub must master abort cycles that are destined for that pci bus when the card is disconnected. therefore, the buffer interface will have to internally master abort all outbound transactions destined for that pci bus until a card is connected again.
114 intel ? 631xesb/632xesb i/o controller hub datasheet functional description serial mode operation during the serial mode of operation, the intel ? 631xesb/632xesb i/o controller hub sends and receives information serially from the slot control logic. the slot control logic is required to deserialize the output information to the bus switches and slot. the slot control logic is also required to convert parallel input information from the slots into serial data to intel ? 631xesb/632xesb i/o controller hub. the serial interface will run at 16.5 mhz. in this mode, intel ? 631xesb/632xesb i/o controller hub constantly polls the slot inputs serially looking for an event at any of the hot-plug slots. the output serial stream from intel ? 631xesb/632xesb i/o controller hub is on demand and is sent out only when intel ? 631xesb/632xesb i/o controller hub needs to schedule an event at a slot. switch debounce for the switch inputs, intel ? 631xesb/632xesb i/o controller hub provides a 8 ms debounce timer internally (board does not have to provide one). this is true in both the serial and parallel modes. a change on any of the switch inputs initiates an 8 ms glitch filter timer. if a change is detected on any slot switch input, the switch input is at an 8 ms time interval. if the switches remain stable, then a change is state is confirmed. if any switch is still changing state, the glitch filter counter is cleared and the sequence restarts. secondary bus initialization and shpc role with the in-box solution it is assumed that intel ? 631xesb/632xesb i/o controller hub would be an embedded part of the system board and the system bios has complete knowledge of the pci buses below the intel ? 631xesb/632xesb i/o controller hub, like the loading characteristics of the bus, the slot numbering scheme on the bus and so forth. in such an architecture, whenever the shpc in intel ? 631xesb/632xesb i/o controller hub is initialized (power-on or a pci express bus reset) the system bios/firmware would be invoked to initialize the shpc working register set with board-specific information (hwinit registers) and also initialize the pci bus beneath intel ? 631xesb/632xesb i/o controller hub to the proper mode and frequency. whenever the standard hot-plug controller is reset, the slot interface outputs are reset to the following: ? rst# is asserted. ? busen# is de-asserted (disconnected from the bus). ? clken# is de-asserted (pci clock disconnected from the bus). ? pwren is de-asserted (s lot power is removed). ? all pwrled# and atnled# outputs are set to off. when hxslot[3] for a pci interface is ?1? (hot-plug is enabled), then whenever the shpc is initialized, the pci bus will power up operating at 33 mhz pci and all hot-plug slots isolated from the bus. the platform bios/firmware could later determine the capabilities of the non-hot-plug pci cards (r eading the pci-x and 66 mhz capability bits in the pci register space of the cards) and also the capabilities of the inserted hot-plug cards, for pci-x capability, or pci capability at 66 mhz, and then could reset the pci bus to operate in the new mode. the software could execute a set bus frequency/mode command to achieve the mode.
intel ? 631xesb/632xesb i/o controller hub datasheet 115 functional description m66en pin handling the intel ? 631xesb/632xesb i/o controller hub can drive the pxm66en pin on each pci bus to gnd in serial mode, 1-slot-parallel and in 2-slot parallel mode (1-slot-no- glue mode is excluded here). there are three possible cases where intel ? 631xesb/ 632xesb i/o controller hub will drive the m66en pin: ? the pfreq and pmode registers are reprogrammed for 33mhz pci mode and a secondary bus reset is completed ?the intel ? 631xesb/632xesb i/o controller hub is powered on with any hot-plug mode enabled by strapping the hxslot[3] pin to ?1? at pwrok ? a change frequency/mode command is executed by the standard hot-plug controller with the frequency set at 33 mhz in each of these cases, the intel ? 631xesb/632xesb i/o controller hub will drive the pxm66en pin to gnd for the affected pci bus. however, it should be noted that when the intel ? 631xesb/632xesb i/o controller hub is in a 1-slot mode and the slot is disconnected, it will never drive the pxm66en pin. this is to allow the hot-plug controller the ability to correctly sample the m66en pin on the slot when the pci bus is grounded (not connected) but the pci card is powered on. in this mode, it is recommended that the m66en pin be pulled up to pci slot?s 3.3 v power rail which is controlled by the hot-plug controller. 5.1.2.5.3 assumptions and intel ? 631xesb/632xesb i/o controller hub requirements mrl opening during the sequence while executing a enable or disable sequence, if the mrl of one of the cards is opened then the intel ? 631xesb/632xesb i/o controller hub performs the auto power down for that slot after executing the current enable/disable operation. as the maximum time required to enable is disable is 319 ms, the maximum delay between mrl open and auto-power down would be less than 320 ms. power fault the power controller/slot control logic is responsible for removing power from the slot when a power fault happens, regardless of the hot-plug mode in intel ? 631xesb/ 632xesb i/o controller hub. also, the slot control logic is responsible for asserting reset and isolating the card in the event of a power fault, in serial mode. in parallel mode, intel ? 631xesb/632xesb i/o controller hub will perform the above-mentioned actions. in 2-slot, 1-slot-no-glue and 1-slot parallel mode, intel ? 631xesb/632xesb i/ o controller hub will assert reset to the slot, disable bus/clock from the slot (by way of deasserting the busen and clken signals) asynchronously when the power fault happens. in the 1-slot-no-glue mode, intel ? 631xesb/632xesb i/o controller hub will assert reset and ground the bus when the power fault happens. the pwren signal from intel ? 631xesb/632xesb i/o controller hub is not asynchronously deasserted on a slot power fault and deasserted only under software control. intel ? 631xesb/632xesb i/o controller hub would keep the slot that has the powerfault isolated from the bus, till the bits 17 and 20 in the slot event latch field are cleared and the software issues an enable slot command. note that an enable command from software will not take affect if the slot that incurred the power fault is currently not in a disabled state. the disable could be because of a previous disable command from software or could be because of an mrl open event at the slot.
116 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.1.3 pci express* downstream ports (bp:d0:f0; bp:d1:f0) pci express downstream ports have two x4 pci express ports, and these two ports can also be configured as one x8 pci express port. these ports reside on device 0: function 0 and device 1:function 0. ? raw bit-rate on the data pins of 2.5 gbit/s, resulting in a raw bandwidth per pin of 250 mb/s ? x4 or x8 modes of operation ? maximum realized bandwidth (in x8 mode) on pci express interface is 2 gb/s in each direction simultaneously, for an aggregate of 4 gb/s ? maximum realized bandwidth (in x4 mode) on pci express interface is 1 gb/s in each direction simultaneously, for an aggregate of 2 gb/s ? pleisochronous operation with automatic clock extraction and phase correction ? hierarchical pci configuration mechanism for downstream devices ? full 64-bit inbound addressing supported as defined by pci express specifications ? 64-bit outbound addressing support (that is, capability to generate dac transactions on pci) ? forwarding of relaxed ordering attribute ? forwarding of non-snooped/snooped attribute ? full-speed self-test and diagnostic (ibist) functionality ? automatic link initialization, configuration and re-training out of reset ? runtime detection and recovery for loss of link synchronization ? 32-bit crc (cyclic redundancy checking) covering all transmitted data packets ? 16-bit crc on all link message information ? hardware link-level retry to recover from transient errors without system failure (software transparent) ? support of in-band power management event, ras error, boot interrupt, and component reset signaling ? support of msi and sapic interrupt messaging over pci express ? support of assert_intx message interrupt messaging over pci express ? supports pci express native hot-plug and hot removal ? vc#0 only support. no isoc support. ? no support for transaction layer crc (ecrc) 5.1.3.1 pci express* hot-plug support intel ? 631xesb/632xesb i/o controller hub supports hot-plug of pci express cards installed in slots attached to these 2 x4 pci express ports 5.1.3.1.1 introduction the intel ? 631xesb/632xesb i/o controller hub pci express hot-plug design accommodates two pci express hot-pluggable devices simultaneously and uses an smbus interface to communicate with a serial i/o expander device (for example the phillips 9555) to provide connectivity to the external hot-plug signals.
intel ? 631xesb/632xesb i/o controller hub datasheet 117 functional description 5.1.3.1.2 overview pci express native hot-plug allows for higher availability and serviceability of a server. it gives the user the capability of adding, removing, or swapping out a pci express slot device without taking down the system. the user and system communicate through a combination of software and hardware utilizing notification through mechanical means and indicator lights. the signals involved with be briefly discussed here. one should refer to the pci express specification itself for complete details. the following table provides a matrix of the registers requirements for a pci express switch implementing hot-plug. the form factor referred in the table as pci express-c is a traditional card-edge connector slot, which is the form factor that intel ? 631xesb/ 632xesb i/o controller hub supports. also, there are 2 categories under pci express-c that are designated as optional. only the first of these two optional items are supported; namely the attention indicators. the register bit definitions can be found in the configuration register description chapter. of particular interest to this discussion is what signals are necessary to support pci express hot-plug. the attention button registers will require an input from an external attention button. the attention indicator registers will utilize an output to drive an external indicator light. the power indicator registers will utilize an output to drive an external power indicator light. the presence detect registers will require an input pin to detect the presence of an add-in card. the power controller register requires an output to control the power supplied to the add-in card. it also requires an input to indicate a power fault when it occurs. the total of all these signals comes to 4 inputs (attention pushbutton, presence detect, power fault, and mechanical latch) and 4 outputs (attention indicator, power indicator, power enable/control, and spare) for a total of 8 pins. normally these 8 pins would come directly off of the integrated hot-plug controller, but with the requirement to support more than one hot-plug slot, and with the lack of spare signals on intel ? 631xesb/632xesb i/o controller hub, this has prompted a different approach, described in the following section. 5.1.3.1.3 hardware interface overview intel ? 631xesb/632xesb i/o controller hub has decided to utilize an external i/o expander device, which interfaces to the i 2 c/smbus. intel ? 631xesb/632xesb i/o controller hub will modify its existing smb target, to become both a master and a target. this will allow intel ? 631xesb/632xesb i/o controller hub to control this external device. the only pin that need be added to support hot-plug is an interrupt pin from the external device, which indicates that one of its input pins has changed. the cost of an external device plus one package signal has been traded off against the cost of supplying 12 additional package signals to support 2 pci express hot-plug slots. in the overview figure below, we have two separate pci express units (pci expressx and pci expressy) that communicate to their respective slots by way of two separate paths. note that x and y refer to the south x4 pci express ports. the non-hot-plug or table 5-8. pci express* register requirements register group pci express*-c attention button registers required attention indicator registers optional power indicator registers required presence detect registers required mrl registers optional power controller registers required
118 intel ? 631xesb/632xesb i/o controller hub datasheet functional description traditional interface signals have a direct path to the slots. the hot-plug signals, from both units, communicate to a common hot-plug controller. this controller then interfaces to the smbus, which connects to the external i/o expander. it is the external expander, which interfaces directly with the hot-plug signals of the slot. note that the ?slot? reference is a generic one, since not all hot-plug signals will actually go to the card, but to logic that supports the slot. in fact, only the presence detect signal will come directly from the actual card slot. the power controller, pushbutton, and indicator lights associated with each slot will not be on the actual add-in card. the diagram separates the intel ? 631xesb/632xesb i/o controller hub from external components. the external features include the slots themselves, the i/o expander device, a pull-up resistor on the external interrupt, debounce-circuitry for the attention buttons (designated as db), and board loop back for unused pins for validation purposes. 5.1.3.1.4 i/o expander device the recommended i/o expander is a device compatible with the philips pca9554 component or the philips pca9555 component. details of those components follow: figure 5-4 is a pictorial view of the pin assignments for the pca9554 device. figure 5-4. pin assignments for pca9554 int# a1 a2 vdd sda scl a0 vss i/o 7 so ml pe pi ai pr ap pf o u t p u t s pca9554 ei sda scl i/o 3 i/o 4 i/o 5 i/o 6 i/o 2 i/o 1 i/o 0 16 15 14 13 10 11 12 9 1 2 3 4 7 6 5 8 i n p u t s
intel ? 631xesb/632xesb i/o controller hub datasheet 119 functional description figure 5-5 is a pictorial view of the pin assignments for the pca9555 device. figure 5-5. pin assignments for pca9555 int# a1 a2 vdd sda scl a0 i/o1.7 so ml pe pi ai pr ap pf o u t p u t s pca9555 ei sda scl io0.3 i/o1.4 i/o1.5 i/o1.6 i/o0.2 i/o0.1 i/o0.0 24 23 22 21 18 19 20 17 1 2 3 4 7 6 5 8 i n p u t s pf ml i/o1.2 i/o1.3 16 15 pi ai i/o0.6 i/o0.5 10 9 vss pe i/o0.7 11 12 pr ap i/o1.0 i/o1.1 14 13 i n p u t s so i/o0.4 o u t p u t s p o r t 1 p o r t 0
120 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ta b l e 5 - 9 shows the relationship between the hot plug signals and the i/o expander signals: table 5-9. hot-plug sign al to bit assignment 5.1.3.1.5 i/o expander address one point of confusion is sometimes the smb address. the i/o expander address is adjustable at the upper bits through the hpcctl register, but in order to access the pca9554 and pca9555 devices the upper nibble (a6:a3) needs to be set to 0100b. if for some reason, a pca9554a device is used, these same bits must be set to 0111b. from a bit position perspective, it would appear the address of the pca9555 device of 0100000b is 20h, but because of the lsb r/w bit for addressing, this is referred to as 40h. this convention is standard to the smb specification. refer to rs-enterprise south bridge 2 bios specification for how to program the smbus address for the i/o expander. table 5-10. i/o expander address matrix 5.1.3.1.6 software interface overview not all concepts from the standard pci hot-plug definition apply directly to pci express interfaces. the specification still calls for an identical software interface in order to facilitate adoption with minimal development overhead on this aspect of the implementation. the largest variance from the old pci hot-plug model is in control of the interface itself. pci required arbitration support for idling already connected components, and ?quick switches? to isolate the bus interface pins of a hot-plug slot. pci express is a point-to- point interface, making hot-plug a subset of the old model that doesn?t require such arbiter support. furthermore, the pci express interface is inherently tolerant of hot connect or disconnect, and does not have expl icit clock or reset pins defined as a part of the bus (although they are standard pieces of some defined pci express connector form factors). as a result of these differences, some of the inherited hot-plug command and status codes are misleading when applied to pci express. bit signal name pca955x i/o active meaning* inactive meaning 0 presence detect pr input card present in slot slot is empty 1 attention pushbutton ap input button pressed button not pressed 2 power fault pf input power fault no power fault 3 mechanical latch ml input latch is open (card can be removed) latch is closed (card cannot be removed) 4 spare output so output user defined user defined 5 attention indicator ai output indicator on indicator off 6 power indicator pi output indicator on indicator off 7 power enable/control pe output power enabled power disabled upper address nibble mode port smb address a6 a5 a4 a3 dual byte 0 a6 a5 a4 a3 0 0 0 a6 a5 a4 a3 dual byte 1 a6 a5 a4 a3 0 0 0 a6 a5 a4 a3 single byte low 0 a6 a5 a4 a3 0 0 0 a6 a5 a4 a3 single byte high 1 a6 a5 a4 a3 0 0 1
intel ? 631xesb/632xesb i/o controller hub datasheet 121 functional description 5.1.3.1.7 pci express* hot-plug register descriptions the hot-plug function is advertised in the pci express capability for its associated downstream port within the intel ? 631xesb/632xesb i/o controller hub. hot-plug is supported for downstream ports attached to slots. for specific information on the hot-plug register set, refer to the pci express device capability register, slot capability register, slot status register, and slot control register in the associated downstream port. 5.1.4 i/oxapic devices (bm:d0:f1). as shown in figure 5-6 , intel ? 631xesb/632xesb i/o controller hub implements two i/oxapic controllers. for information about i/oxapic (d31:f0), refer to section 5.11 . this i/oxapic (d0:f1) resides on the primary bus. the intended use of this controller is to have the interrupts from the pci-x bus connected to this interrupt controller on device 0: function 1. the following list summarizes some of the features of the intel ? 631xesb/632xesb i/o controller hub i/oxapic controller (d0:f1): ? one i/oxapic controller, support for 24 interrupts ? 16 physical pci interrupt pins per pci bus in the server mode ? pci virtual wire interrupt support by way of writing to pin assertion register in the i/oxapic ? support for both ia-32 and itanium ? processor front side bus messages ? no support for serial bus delivery ? no support for eoi special cycle propagation to pci
122 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.1.4.1 pci irq# interrupts the i/o apic (d0:f1) within the intel ? 631xesb/632xesb i/o controller hub can handle up to 16 pin interrupts. interrupts delivered by a pin can be either in level or edge mode, and may be either active high or active low. since this i/oxapic is connected to a pci bus, its most likely configuration will be as active low level, which will match the pci pin polarity and functionality. each pin is collected by intel ? 631xesb/632xesb i/o controller hub, synchronized into the pci clock domain, and scheduled for delivery if it is unmasked. figure 5-6. system interrupt architecture pci - x device s north bridge cpu cpu msi control i/ox apic ( bm :d 0:f1) msi control i/o x apic (d 30 :f0) msi control intx # ( pin ) msi ( memory write ) msi ( memory write ) fsb interrupt message transaction intel ? 631xesb/632xesb i/o controller hub
intel ? 631xesb/632xesb i/o controller hub datasheet 123 functional description intel ? 631xesb/632xesb i/o controller hub has only 16 interrupt pins on the pci-x segment. these pins are connected to i/oxapic redirection table entries 15 ? 0 (of 24 entries). the standard hot-plug controller is hardwired to redirection table entry 23 of the i/oxapic. all other interrupts are addressable only through the pci virtual wire mechanism. the unused pins must be connected to vcc. 5.1.4.2 pci message signaled interrupts (msi) these interrupts which appear on the pci bu s as inbound memory writes are decoded by intel ? 631xesb/632xesb i/o controller hub in the pci bridge inverse decode window and passed upstream without any modifications. bios would setup the pci bridge decode register such that 0xfeex_xxxx falls in the inverse decode window of intel ? 631xesb/632xesb i/o controller hub. 5.1.4.3 pci virtual wire interrupts pci devices could directly write to the par (pin assertion register, see section 13.5.2.4 ) in the corresponding bridge i/oxapic device to cause an upstream interrupt message. all the 24 interrupt entries are addressable through this mechanism. values above 23 are invalid in the pin assertion register and are ignored by the intel ? 631xesb/632xesb i/o controller hub. intel ? 631xesb/632xesb i/o controller hub decodes the memory write transactions to the pin assertion register in the p2p bridge inverse decode window, just as any other upstream transaction. 5.1.4.4 pci express* legacy intx support and boot interrupt the intel ? 631xesb/632xesb i/o controller hub has the capability to generate an in- band interrupt request on the pci express bus when the i/o apic (d0:f1) is disabled. this in-band interrupt mechanism is necessary for systems that do not support the i/o apic (d0:f1) and for boot. the pci express protocol describes an inband legacy wire- interrupt intx mechanism for i/o devices to signal pci-style level interrupts. the intel ? 631xesb/632xesb i/o controller hub generates a pci express intx message as follows: each interrupt pin input (16 interrupt pins) and int[23]# is compared with its mask (bit 16 in the redirection table low, rdl register). if the interrupt is masked in the i/o apic (d0:f1), that interrupt needs to cause an intx message over the pci express bus whenever asserted. if the interrupt is not masked, then that interrupt is being used by the i/o apic (d0:f1) and should not cause an intx message on the pci express bus. in pci express, the legacy interrupts are virtualized using a pair of assert and deassert messages. this then gives a way to preserve the level-sensitive semantics of the pci interrupts on pci express. pci express defines four virtual wire interrupts - inta:intd -corresponding to the four interrupt wires defined in pci spec. intel ? 631xesb/632xesb i/o controller hub routes its pci interrupt pins and the internal interrupts, to pci express intx interrupts according to the following table : table 5-11. intel ? 631xesb/632xesb i/o controller hub intx routing table pci interrupt pins internal interrupts pci express* intx message 0, 4, 8, 12 shpc (irq[23]) inta 1, 5, 9, 13 - intb 2, 6, 10, 14 - intc 3, 7, 11, 15 - intd
124 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.1.4.5 buffer flushing intel ? 631xesb/632xesb i/o controller hub does not implement any buffer flushing feature that is,. when intel ? 631xesb/632xesb i/o controller hub receives an interrupt on its interrupt pin, it does not flush its posted write buffers in the inbound direction in the pci interface. this is not required from intel ? 631xesb/632xesb i/o controller hub because pci device drivers ultimately have to guarantee that all posted writes from the device to the memory are all flushed before executing the interrupt service routine. it could do this by doing a dummy read to the device that originated the interrupt. or the originating device could solve this problem if it did a read of the memory to guarantee that the write before it went through and then signal an interrupt. 5.1.4.6 eoi special cycles intel ? 631xesb/632xesb i/o controller hub could get eoi special cycles over pci express in the ia32 fsb mode. this is the result of mch broadcasting the ia32 fsb eoi cycle. the i/oxapic (d0:f1) in intel ? 631xesb/632xesb i/o controller hub would compare the vector number in the eoi data fi eld with the vector field for each entry in the i/o redirection table. when a match is found, the remote_irr bit for that i/o redirection entry in the i/oxapic will be cleared. note that if multiple i/o redirection entries, for any reason, assign the same vector for more than one interrupt input, each of those entries will have the remote_irr bit reset to ?0?. 5.1.4.7 upstream interrupt message format when an interrupt message needs to be sent over pci express, that is, when the irr bit is set for an interrupt, the intel ? 631xesb/632xesb i/o controller hub will perform a memory write on pci express. the message format is the same as in ta bl e 5 - 2 4 and ta b l e 5 - 2 5 . 5.1.5 flow control the pci express mechanism for flow control is credit based and only applies to tlps. dllp packets do not consume any credits. through initial hardware negotiation and subsequent updates, a pci express transmitter is aware of the credit capabilities of the interfacing device. a pci express requester will never issue a transaction when there are not enough advertised credits in the other component to support that transaction. if there are not enough credits, the requester will hold off that transaction until enough credits free up to support the transaction. if the ordering rules and available credits allow other subsequent transactions to proceed, the intel ? 631xesb/632xesb i/o controller hub will allow those transactions. note: flow control is orthogonal with packet acks. the pci express flow control credit types are described in ta bl e 5 - 1 2 . the pci express base specification , revision 1.0a defines which tlps are covered by each flow control type.
intel ? 631xesb/632xesb i/o controller hub datasheet 125 functional description note: * denotes initial credits for downstream e1 or e2 ports upon power-up; once running, these may be reduced and change dynamically 5.2 pci express* root ports (d28:f0,f1,f2,f3) there are four pci express root ports in the intel ? 631xesb/632xesb i/o controller hub. these all reside in device 28, and take function 0 ? 3. port 1 is function 0, port 2 is function 1, port 3 is functi on 2, and port 4 is function 3. 5.2.1 interrupt generation the root ports generate interrupts on behalf of hot-plug and power management events, when enabled. these interrupts can either be pin based, or can be msis, when enabled. when an interrupt is generated by way of the legacy pin, the pin is internally routed to the intel ? 631xesb/632xesb i/o controller hub interrupt controllers. the pin that is driven is based upon the setting of the chipset configuration registers. specifically, the chipset configuration registers used are the d28ip (base address + 310ch) and d28ir (base address + 3146h) registers. ta bl e 5 - 1 3 summarizes interrupt behavior for msi and wire-modes. in the table ?bits? refers to the hot-plug and pme interrupt bits. table 5-12. pci express credit mapping table direction flow control type limit inbound posted request header credits (iprh) 4 posted request data credits (iprd) 32x16 bytes non-posted request header credits (inprh) 4 non-posted request data credits (inprd) 4x4 bytes completion header credits (cph) 4 completion data credits (cpd) 32x16 bytes* outbound posted request header credits (oprh) 16 posted request data credits (oprd) 128x16 bytes non-posted request header credits (onprh) 1 non-posted request data credits (onprd) 1x4 bytes completion header credits (cplh) 16 completion data credits (cpld) 128x16 bytes* table 5-13. msi vs. pci irq actions interrupt register wire-mode action msi action all bits 0 wire inactive no action one or more bits set to 1 wire active send message one or more bits set to 1, new bit gets set to 1 wire active send message one or more bits set to 1, software clears some (but not all) bits wire active send message one or more bits set to 1, software clears all bits wire inactive no action software clears one or more bits, and one or more bits are set on the same clock wire active send message
126 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.2.2 power management 5.2.2.1 s3/s4/s5 support software initiates the transition to s3/s4/s5 by performing an i/o write to the power management control register in the intel ? 631xesb/632xesb i/o controller hub. after the i/o write completion has been returned to the cpu the power management controller will signal each root port to send a pme_turn_off message on its downstream link. the device attached to the link will eventually respond with a pme_to_ack followed by sending a pm_enter_l23 dllp request to enter l23. the intel ? 631xesb/632xesb i/o controller hub root ports and power management controller take no action upon receiving a pme_to_ack. when all the intel ? 631xesb/ 632xesb i/o controller hub and mch root ports links are in state l23, the intel ? 631xesb/632xesb i/o controller hub power management controller will proceed with the entry into s3/s3/s5. see chapter 16 for additional details for the s3/ s4/s5 entry sequence. prior to entering s3, software is required to put each device into d3 hot . when a device is put into d3 hot it will initiate entry into a l1 link state by sending a pm_enter_l1 dllp. thus under normal operating conditions when the root port sends the pme_turn_off message the link will be in state l1. however, when the root port is instructed to send the pme_turn_off message, it will send it whether or not the link was in l1. endpoints attached to intel ? 631xesb/632xesb i/o controller hub can make no assumptions about the state of the link prior to receiving a pme_turn_off message. 5.2.2.2 resuming from suspended state the root port contains enough circuitry in the resume well to detect a wake event through the wake# signal and to wake the system. when wake# is detected asserted, an internal signal is sent to the power management controller of the intel ? 631xesb/ 632xesb i/o controller hub to cause the system to wake up. this internal message is not logged in any register, nor is an interrupt/gpe generated due to it. 5.2.2.3 device initiated pm_pme message when the system has returned to a working state from a previous low power state, a device requesting service will send a pm_pme message continuously, until acknowledge by the root port. the root port will take different actions depending upon whether this is the first pm_pme has been received, or whether a previous message has been received but not yet serviced by the operating system. if this is the first message received (rsts.ps - d28:f0/f1/f2/f3:offset 60h:bit 16 is cleared), the root port will set rsts.ps, and log the pme requester id into rsts.rid (d28:f0/f1/f2/f3:offset 60h:bits 15:0). if an interrupt is enabled by way of rctl.pie (d28:f0/f1/f2/f3:offset 5ch:bit 3), an interru pt will be generated. this interrupt can be either a pin or an msi if msi is enabled by way of mc.msie (d28:f0/f1/f2/f3:offset 82h:bit 0). see section section 5.2.2.4 for smi/sci generation. if this is a subsequent message received (rsts.ps is already set), the root port will set rsts.pp (d28:f0/f1/f2/f3:offset 60h:bit 17) and log the pme requester id from the message in a hidden register. no other action will be taken. when the first pme event is cleared by software clearing rsts.ps, the root port will set rsts.ps, clear rsts.pp, and move the requester id from the hidden register into rsts.rid.
intel ? 631xesb/632xesb i/o controller hub datasheet 127 functional description if rctl.pie is set, generate an interrupt. if rctl.pie is not set, send over to the power management controller so that a gpe can be set. if messages have been logged (rsts.ps is set), and rctl.pie is later written from a 0 to a 1, and interrupt must be generated. this last condition handles the case where the message was received prior to the operating system re-enabling interrupts after resuming from a low power state. 5.2.2.4 smi/sci generation interrupts for power management events are not supported on legacy operating systems. to support power management on non pci express aware operating systems, pm events can be routed to generate sci. to generate sci, mpc.pmce must be set. when set, a power management event will cause smscs.pmcs (d28:f0/f1/f2/ f3:offset dch:bit 31) to be set. additionally, bios workarounds for power management can be supported by setting mpc.pmme (d28:f0/f1/f2/f3:offset d8h:bit 0). when this bit is set, power management events will set smscs.pmms (d28:f0/f1/f2/f3:offset dch:bit 0), and smi # will be generated. this bit will be set regardless of whether interrupts or sci is enabled. the smi# may occur concurrently with an interrupt or sci. 5.2.3 serr# generation serr# may be generated by way of two paths ? through pci mechanisms involving bits in the pci header, or through pci express mechanisms involving bits in the pci express capability structure. 5.2.4 hot-plug each root port implements a hot-plug controller which performs the following: ? messages to turn on / off / blink leds ? presence and attention button detection ? interrupt generation the root port allows only hot-plug with modules (for example, expresscard*). edge- connector based hot-plug is not supported. figure 5-7. generation of serr# to platform psts.sse serr # pcicmd.see secondary parity error primary parity error secondary serr# correctable serr# fatal serr# non-fatal serr# p ci pci express
128 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.2.4.1 presence detection when a module is plugged in and power is supplied, the physical layer will detect the presence of the device, and the root port sets slsts.pds (d28:f0/f1/f2/f3:offset 5ah:bit 6) and slsts.pdc (d28:f0/f1/f2/f3 :offset 6h:bit 3). if slctl.pde (d28:f0/ f1/f2/f3:offset 58h:bit 3) and slctl.hpe (d28:f0/f1/f2/f3:offset 58h:bit 5) are both set, the root port will also generate an interrupt. when a module is removed (by way of the physical layer detection), the root port clears slsts.pds and sets slsts.pdc. if slctl.pde and slctl.hpe are both set, the root port will also generate an interrupt. 5.2.4.2 message generation when system software writes to slctl.aic (d28:f0/f1/f2/f3:offset 58h:bits 7:6) or slctl.pic (d28:f0/f1/f2/f3:offset 58h:bits 9:8), the root port will send a message down the link to change the state of leds on the module. writes to these fields are non-postable cycles, and the resulting message is a postable cycle. when receiving one of these writes, the root port performs the following: ? changes the state in the register. ? generates a completion into the upstream queue ? formulates a message for the downstream port if the field is written to regardless of if the field changed. ? generates the message on the downstream port ? when the last message of a command is transmitted, sets slsts.cce (d28:f0/f1/ f2/f3:offset 58h:bit 4) to indicate the command has completed. if slctl.cce and slctl.hpe (d28:f0/f1/f2/f3:offset 58h:bit 5) are set, the root port generates an interrupt. the command completed register (slsts.cc) applies only to commands issued by software to control the attention indicator (slctl.aic), power indicator (sklctl.pic), or power controller (slctl.pcc). however, writes to other parts of the slot control register would invariably end up writing to the indicators and power controller fields. hence, any write to the slot control register is considered a command and if enabled, will result in a command complete interrupt. the only exception to this rule is a write to disable the command complete interrupt which will not result in a command complete interrupt. a single write to the slot control register is considered to be a single command, and hence receives a single command complete, even if the write affects more than one field in the slot control register. 5.2.4.3 attention button detection when an attached device is ejected, an attention button could be pressed by the user. this attention button press will result in a the pci express message ?attention_button_pressed? from the device. upon receiving this message, the root port will set slsts.abp (d28:f0/f1/f2/f3:offset 5ah:bit 0). if slctl.abe (d28:f0/f1/f2/f3:offset 58h:bit 0) and slctl.hpe (d28:f0/f1/f2/ f3:offset 58h:bit 5) are set, the hot-plug controller will also generate an interrupt. the interrupt is generated on an edge-event. for example, if slsts.abp is already set, a new interrupt will not be generated.
intel ? 631xesb/632xesb i/o controller hub datasheet 129 functional description 5.2.4.4 smi/sci generation interrupts for hot-plug events are not supported on legacy operating systems. to support hot-plug on non-pci express aware operating systems, hot-plug events can be routed to generate sci. to generate sci, mpc.hpce (d28:f0/f1/f2/f3:offset d8h:bit 30) must be set. when set, enabled hot-plug events will cause smscs.hpcs (d28:f0/ f1/f2/f3:offset dch:bit 30) to be set. additionally, bios workarounds for hot-plug can be supported by setting mpc.hpme (d28:f0/f1/f2/f3:offset d8h:bit 1). when this bit is set, hot-plug events can cause smi status bits in smscs to be set. supported hot-plug events and their corresponding smscs bit are: ? command completed = smscs.hpccm (d28:f0/f1/f2/f3:offset dch:bit 3) ? presence detect changed = smscs.hppdm (d28:f0/f1/f2/f3:offset dch:bit 1) ? attention button pressed = smscs.hpabm (d28:f0/f1/f2/f3:offset dch:bit 2) when any of these bits are set, smi # will be generated. these bits are set regardless of whether interrupts or sci is enabled for hot-plug events. the smi# may occur concurrently with an interrupt or sci. 5.3 pci-to-pci bridge (d30:f0) the pci-to-pci bridge resides in pci device 30, function 0 on bus #0. this portion of the intel ? 631xesb/632xesb i/o controller hub implements the buffering and control logic between pci and the esi. the arbitration for the pci bus is handled by this pci device. the pci decoder in this device must decode the ranges for the esi. all register contents are lost when core well power is removed. enterprise south bridge interface (esi) is the chip-to-chip connection between the memory controller hub (mch) and intel ? 631xesb/632xesb i/o controller hub. this high-speed interface integrates advanced priority-based servicing allowing for concurrent traffic and true isochronous transfer capabilities. base functionality is completely software transparent permitting current and legacy software to operate normally. configuration registers for esi and esi active state power management (aspm) are in the rcrb space in the chipset config registers (section 12). 5.3.1 pci bus interface the intel ? 631xesb/632xesb i/o controller hub pci interface provides a 33 mhz, pci local bus specification, revision 2.3 -compliant implementation. all pci signals are 5 v tolerant (except pme#). the intel ? 631xesb/632xesb i/o controller hub integrates a pci arbiter that supports up to five external pci bus masters in addition to the internal intel ? 631xesb/632xesb i/o controller hub requests. 5.3.2 pci bridge as an initiator the bridge initiates cycles on the pci bus when granted by the pci arbiter. the bridge generates the following cycle types:
130 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.3.2.1 memory reads and writes the bridge bursts memory writes on pci that are received as a single packet from esi. 5.3.2.2 i/o reads and writes the bridge generates single dw i/o read and write cycles. when the cycle completes on pci bus, the bridge generates a corresponding completion on esi. if the cycle is retried, the cycle is kept in the downbound queue and may be passed by a postable cycle. 5.3.2.3 configuration reads and writes the bridge generates single dw configuration read and write cycles. when the cycle completes on pci bus, the bridge generates a corresponding completion. if the cycle is retried, the cycle is kept in the downbound queue and may be passed by a postable cycle. 5.3.2.4 locked cycles the bridge propagates locks from esi per the pci specification. the pci bridge implements bus lock, which means the arbiter will not grant to any agent except esi while locked. if a locked read results in a target or master abort, the lock is not established (as per the pci specification). agents north of the intel ? 631xesb/632xesb i/o controller hub must not forward a subsequent locked read to the bridge if they see the first one finish with a failed completion. 5.3.2.5 target/master aborts when a cycle initiated by the bridge is master/target aborted, the bridge will not re- attempt the same cycle. for multiple dw cycles, the bridge increments the address and attempts the next dw of the transaction. for all non-postable cycles, a target abort response packet is returned for each dw that was master or target aborted on pci. the bridge drops posted writes that abort. 5.3.2.6 secondary master latency timer the bridge implements a master latency timer by way of the slt register which, upon expiration, causes the de-assertion of frame# at the next legal clock edge when there is another active request to use the pci bus. 5.3.2.7 dual address cycle (dac) the bridge will issue full 64-bit dual address cycles for device memory-mapped registers above 4 gb. table 5-14. pci bridge initiator cycle types command c/be# notes i/o read/write 2h/3h non-posted memory read/write 6h/7h writes are posted configuration read/write ah/bh non-posted special cycles 1h posted
intel ? 631xesb/632xesb i/o controller hub datasheet 131 functional description 5.3.2.8 memory and i/o decode to pci the pci bridge in the intel ? 631xesb/632xesb i/o controller hub is a subtractive decode agent , which follows the following rules when forwarding a cycle from esi to the pci interface: ? the pci bridge will positively decode any memory i/o address within its window registers, assuming pcicmd.mse (d30:f0:offset 04h:bit 1) is set for memory windows and pcicmd.iose (d30:f0:offset 04h:bit 0) is set for i/o windows. ? the pci bridge will subtractively decode any 64-bit memory address not claimed by another agent, assuming pcicmd.mse (d30:f0:offset 04h:bit 1) is set. ? the pci bridge will subtractively decode any 16-bit i/o address not claimed by another agent assuming pcicmd.iose (d30:f0:offset 04h:bit 0) set ? if bctrl.ie (d30:f0:offset 3eh:bit 2) is set, the pci bridge will not positively forward from primary to secondary called out ranges in the i/o window per pci specification (i/o transactions addressing the last 768 bytes in each, 1-kb block: offsets 100 h to 3 ffh). the pci bridge will still take them subtractively assuming the above rules. ? if bctrl.vgae (d30:f0:offset 3eh:bit 3) is set, the pci bridge will positively forward from primary to secondary i/o and memory ranges as called out in the pci bridge specification, assuming the above rules are met. 5.3.3 parity error detection and generation pci parity errors can be detected and reported. the following behavioral rules apply: ? when a parity error is detected on pci, the bridge sets the secsts.dpe (d30:f0:offset 1eh:bit 15). ? if the bridge is a master and bctrl.pere (d30:f0:offset 3eh:bit 0) and one of the parity errors defined below is detected on pci, then the bridge will set secsts.dpd (d30:f0:offset 1eh:bit 8) and will also generate an internal serr#. ? during a write cycle, the perr# signal is active, or ? a data parity error is detected while performing a read cycle ? if an address or command parity error is detected on pci and pcicmd.see (d30:f0:offset 04h:bit 8), bctrl.pere, and bctrl.see (d30:f0:offset 3eh:bit 1) are all set, the bridge will set the psts.sse (d30:f0:offset 06h:bit 14) and generate an internal serr#. ? if the psts.sse is set because of an address parity error and the pcicmd.see is set, the bridge will generate an internal serr# ? when bad parity is detected from esi, bad parity will be driven on all data the bridge. ? when an address parity error is detected on pci, the pci bridge will never claim the cycle. this is a slight deviation from the pci bridge spec, which says that a cycle should be claimed if bctrl.pere is not set. however, esi does not have a concept of address parity error, so claiming the cycle could result in the rest of the system seeing a bad transaction as a good transaction.
132 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.3.4 pcirst# pcirst# is generated under two conditions: ?pltrst# active ? bctrl.sbr (d30:f0:offset 3eh:bit 6) set to 1 the pcirst# pin is in the resume well. pcirst# should be tied to pci bus agents, but not other agents in the system. 5.3.5 pci-to-pci bridge model from a software perspective, the intel ? 631xesb/632xesb i/o controller hub contains a pci-to-pci bridge. this bridge connects esi to the pci bus. by using the pci-to-pci bridge software model, the intel ? 631xesb/632xesb i/o controller hub can have its decode ranges programmed by existing plug-and-play software such that pci ranges do not conflict with graphics aperture ranges in the host controller. note: all downstream should be disabled before reconfiguring the pci bridge. failure to do so may cause undefined results. 5.3.6 idsel to device number mapping when addressing devices on the external pci bus (with the pci slots), the intel ? 631xesb/632xesb i/o controller hub asserts one address signal as an idsel. when accessing device 0, the intel ? 631xesb/632xesb i/o controller hub asserts ad16. when accessing device 1, the intel ? 631xesb/632xesb i/o controller hub asserts ad17. this mapping continues all the way up to device 15 where the intel ? 631xesb/632xesb i/o controller hub asserts ad31. note that the intel ? 631xesb/632xesb i/o controller hub?s internal functions (ac?97, intel high definition audio, ide, usb, sata and pci bridge) are enumerated like they are off of a separate pci bus (esi) from the external pci bus. 5.3.7 standard pci bus configuration mechanism the pci bus defines a slot based ?configuration space? that allows each device to contain up to eight functions with each function containing up to 256, 8-bit configuration registers. the pci local bus specification, revision 2.3 defines two bus cycles to access the pci configuration space: configuration read and configuration write. memory and i/o spaces are supported directly by the processor. configuration space is supported by a mapping mechanism implemented within the intel ? 631xesb/ 632xesb i/o controller hub. the pci local bus specification, revision 2.3 defines two mechanisms to access configuration space, mechanism 1 and mechanism 2. the intel ? 631xesb/632xesb i/o controller hub supports only mechanism 1. warning: configuration writes to internal devices, when the devices are disabled, are illegal and may cause undefined results.
intel ? 631xesb/632xesb i/o controller hub datasheet 133 functional description 5.4 integrated lan contro ller and serdes/kumeran interface the intel ? 631xesb/632xesb i/o controller hub integrated lan controller employs a 4 wire per port interface for use in connecting to an external phy. this interface, called kumeran, was reduced to 4 wires per port by incorporating the mii management interface into the packet data pins, thus reducing pin count and easing board layout constraints. 5.4.1 integrated lan controller the intel ? 631xesb/632xesb i/o controller hub integrated lan controller provides 4 lanes of pci express bus interface working at 2.5 ghz each, providing sufficient bandwidth to support sustained dual-port 1000 mb/s transfer rates. a configurable 48 kbytes of on-chip buffer mitigates instantaneous receive bandwidth demands and eliminates transmit under?runs by buffer the entire outgoing packet prior to transmission. numerous features have been incorporated to allow greater throughput with less direct cpu intervention. the lan controller implements tcp segmentation offload. the controller also has the ability to split the ethernet header information from the payload of the packet, allowing the os protocol stack to access the packets header in a cacheable memory while the packets payload remain in non cacheable memory improving headers access time by eliminating cache misses, thus saving cpu cycles and improve overall performance. it also supports fragmented udp checksum offload for packet reassembly. dual transmit and receive queues for receive side scaling (rss), qos, and other programmable usage models are also supported. the device also supports programmable host memory receive buffers from 1 kbytes to 16 kbytes in 1-kbyte increments, allowing for the most flexible usage model across a large array of packet sizes, including jumbo frames of up to 9014 bytes in size. the intel ? 631xesb/632xesb i/o controller hub integrated lan controller provides a serial flash interface, along with a spi eeprom interface. the eeprom contains power on initialization for the hardware and software configuration parameters, along with some configuration information used in the external phy. the following list summarizes some of the features of the intel ? 631xesb/632xesb i/o controller hub integrated lan controller: ? pci express host interface with 4 lanes support ?intel ? i/o acceleration technology support ? dual kumeran interface to two external 1000base-t phys (specifications in a separate document) ? multi-speed operation: 10/100/1000 mbyte/s ? half duplex and full duplex operation at all supported speeds (except for half- duplex mode, not supported in gigabit speed) ? 64-bit address support for systems using more than 4 gbytes of physical memory ? programmable flexible host memory receive buffers (1kb to 16kb) in 1kb increments. ? support jumbo frames of up to 9014 bytes long ? descriptor ring management hard ware for transmit and receive ? serdes auto-negotiation
134 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ? flow control support: send/receive pause frames and receive fifo thresholds ? acpi register set and power down functionality supporting d0 and d3 states ? software-controlled global reset bit (resets everything except the configuration registers) ? 802.1q vlan support ? tcp segmentation capability compatible with nt 5.x ?large send? offloading features ? message signaled interrupts support ? wakeup the system through pe_wake pin upon various network wakeup packets and events ? pass through-compatible smb-based management packet transmit/receive support ? support for ipv6 including: ? ipv6 support for ip/tcp and ip/udp receive checksum offload ? ipv6 wake-up filters ? intelligent interrupt generation features to enhance driver performance: ? packet interrupt coalescing timers (packet timers) and absolute-delay interrupt timers for both transmit and receive operation ? transmit descriptor-ring ?low? description ? interrupt throttling control to limit maximum interrupt rate and improve cpu utilization ? configurable led operation for software or oem customization of led displays ? configurable 48-kbyte receive and transmit data fifo ? serial flash interface ? spi eeprom interface ? protected eeprom space for private configuration ? programmable cache line size of 64 bytes or128 bytes ? ack-packet detection delayed interrupt for improved response time to tcp acknowledges ? additional statistics to enhance new interrupt features ? programmable flexible host memory receive buffers (1 kbyte to 16 kbytes) in 1- kbyte increments ? serdes interface for external phy connection or system interconnect ? dual transmit and receive queues for receive side scaling (rss), qos and other programmable usage models ? fragmented udp checksum offload for packet reassembly ? default configuration by eeprom for all leds for pre-driver functionality ? 8 vlan tag flex filters ? updated rss engine to support microsoft toeplitz rss hash algorithm
intel ? 631xesb/632xesb i/o controller hub datasheet 135 functional description 5.4.2 packet reception and transmission in the general case, packet reception consists of recognizing the presence of a packet on the wire, performing address filtering, storing the packet in the receive data fifo, transferring the data to one of the two receive queues in host memory, and updating the state of a receive descriptor. output packets are made up of pointer-length pairs constituting a descriptor chain. software forms transmit packets by assembling the list of pointer-length pairs, storing this information in the transmit descriptor, and then updating the on-chip transmit tail pointer to the descriptor. the transmit descriptor and buffers are stored in host memory. hardware typically transmits the packet only after it has completely fetched all packet data from host memory and deposi ted it into the on-chip transmit fifo. this permits tcp or udp checksum computation, and avoids under-runs due to pci expressx latency. 5.4.3 buffer and descriptor structure software allocates transmit and receive buffers and forms descriptors that contain pointers to, and status of, those buffers. a conceptual ownership boundary exists between the driver software and the hardware for buffers and descriptors. software gives hardware ownership of a queue of buffers for receive. these buffers store data that software acquires ownership of once valid packets arrive. for transmit, software maintains a queue of buffers. the driver "owns" a buffer until it is ready to transmit. software commits the buffer to the hardware at which time the hardware "owns" the buffer until data is transmitted or loaded in the transmit fifo. descriptors store information about the buffers. they contain the physical address, length, and status information about the re ferenced buffer. an end-of-packet field indicates the last buffer for a packet. the descriptors also contain packet specific information indicating type of packet and specific operations to perform in the context of transmitting a packet such as those for vlan or checksum offload support. 5.4.4 lan controller pci express* bus interface as a gigabit ethernet controller, the role of the intel ? 631xesb/632xesb i/o controller hub integrated lan controller is to fetch data for transmission and transmit on the network and receive data from the network and deposit into host memory. the lan controller, as a bus master device, initiates memory cycles by way of the pci express bus to fetch or deposit the required data. to perform these actions, the lan controller is controlled and examined by the processor by way of its control and status structures and registers. some of these control and status structures reside in the lan controller and some reside in system memory. for access to the lan controller?s control/status registers (csr), the lan controller acts as a slave (in other words, a target device). the lan controller serves as a slave also while the processor accesses the eeprom or flash devices. 5.4.4.1 functionality the pci express capability register states the device/port type. in the intel ? 631xesb/ 632xesb i/o controller hub integrated lan controller, all functions besides the ide and uhci are defined as native devices. in the intel ? 631xesb/632xesb i/o controller hub integrated lan controller, ide definition as a pci express native or legacy endpoint
136 intel ? 631xesb/632xesb i/o controller hub datasheet functional description is determined by the legacy endpoint bit in the pci express init configuration 2 word (word 19h). the uhci definition is set by uhci device type bit in the functions control 2 word (word 2eh). the control bits are loaded from eeprom. the intel ? 631xesb/632xesb i/o controller hub integrated lan controller is native device by default. the device does not support locked requests as target or master. 5.4.4.1.1 transaction layer the upper layer of the pci express architecture is the transaction layer. the transaction layer connects to the device core using an implementation specific protocol. through this core-to-transaction-layer protocol, the application-specific parts of the device interact with the pci express subsystem and transmit and receive requests to or from the remote pci express agent, respectively. 5.4.4.1.2 transaction initiated by intel ? 631xesb/632xesb i/o controller hub as master the intel ? 631xesb/632xesb i/o controller hub supports the following subset transaction types as a master: ta b l e 5 - 1 5 depicts the pci express packet types supported as master. note: max_payload_size is loaded from eeprom (either 128 or 256 bytes). ta b l e 5 - 1 6 lists the standard messages generated by the intel ? 631xesb/632xesb i/o controller hub as master. table 5-15. packet type initiated as master request packet type payload size comments memory read mrd none request is limited to 512 bytes. both 32- and 64-bit addresses. posted memory write mwr max_payload_size (see note) both 32- and 64-bit addresses. target read completions cpld dword data to be returned in a single completion packet. target i/o read completion cpl none 32-bit addressing only. target i/o write completion cpld dword 32-bit addressing only. configuration read completion cpl dword 32-bit addressing only. configuration write completion cpl none 32-bit addressing only system messages msg msgd message specific for various standard messages, some with data, and some requiring completion unsuccessful reception cpl none unsuccessful completion
intel ? 631xesb/632xesb i/o controller hub datasheet 137 functional description 5.4.4.1.3 alignment requests must never specify an address/length combination that causes a memory space access to cross a 4-kbyte boundary. it is the hardware?s responsibility to break requests into 4-kbyte-aligned requests (if needed). this does not pose any requirement on the software. however, if the software allocates a buffer across a 4- kbyte boundary, hardware will issue multiple requests for the buffer. software should consider aligning buffers to 4-kbyte boundaries in cases where it improves performance. it is also recommended that requests be multiples of 64 bytes and aligned to make better use of memory controller resources. 5.4.4.1.4 transactions supported by the intel ? 631xesb/632xesb i/o controller hub as the target the intel ? 631xesb/632xesb i/o controller hub supports the following subset transaction types as target: ta bl e 5 - 1 7 depicts the pci express packet types supported as target. table 5-16. standard messages initiated by the intel ? 631xesb/632xesb i/o controller hub message description/comments err_cor signal detection of a correctable error err_unc signal detection of an uncorrectable error err_fatal signal detection of a fatal error pm_enter_l2 request to transition the link to l2 pm_pme pme message conveying the id of the pme originator pme_to_ack acknowledge turn-off of link clock and power assert_inta assert inta virtual signal deassert_inta deassert inta virtual signal assert_intb assert intb virtual signal deassert_intb deassert intb virtual signal table 5-17. packet types supported as target (sheet 1 of 2) request packet type payload size comments ta rg et re a d m rd n on e th e i nt e l ? 631xesb/632xesb i/o controller hub supports target read requests of up to 64-bits. longer requests will be accepted and dropped internally 1 . both 32-bit and 64-bit addresses. target posted write mwr dword the intel ? 631xesb/632xesb i/o controller hub supports target writes of up to 64-bits. longer writes will be accepted and dropped internally 2 . both 32-bit and 64-bit addresses target i/o read iord none 32-bit addressing only. target i/o write iowr dword 32-bit addressing only. master read completion cpld max_payload_size in-order completions of read request. configuration read cfgrd0 none both pci compatible and pci express enhanced configurations.
138 intel ? 631xesb/632xesb i/o controller hub datasheet functional description notes: 1. read requests larger than 8 bytes (2 dwords) are acknowledged with a "ur" completion status. 2. in case of a write request larger than 8 bytes (2 dwor ds), an internal error bit is set in the error reporting registers and a message error is reported according to the error reporting status. ta b l e 5 - 1 8 lists the standard messages accepted by the intel ? 631xesb/632xesb i/o controller hub as target: 5.4.4.1.5 host i/f pci express device numbers identify logical devices within the physical device (intel ? 631xesb/632xesb i/o controller hub lan core is a physical device). intel ? 631xesb/632xesb i/o controller hub lan core implements a single logical device with seven separate pci functions: lan 0 and lan 1. the device number is captured from each type 0 configuration write transaction. each of the pci express functions interfaces with the unit through one or more clients. a client id identifies the client and is included in the tag field of the packet header. completions always carry the tag value included in the request to allow routing of the completion to the appropriate client. client ids are assigned as shown in ta bl e 5 - 1 9 . configuration write cfgwr0 dword both pci compatible and pci express enhanced configurations. system messages msg msgd message specific for various standard messages, some with data, and some requiring completion. completion with unsuccessful status cpl none see ta b l e 5 - 2 2 . table 5-17. packet types supported as target (sheet 2 of 2) request packet type payload size comments table 5-18. standard messages accepted by the intel ? 631xesb/632xesb i/o controller hub as target message description/comment pm_active_state_nak rejection of request to enter a low power state. pme_turn_off notification of pending turn-off of link clock and power. table 5-19. assignment of client ids (sheet 1 of 2) tag module client 00h dma rx write data from ethernet to main memory 01h dma rx read descriptor to core 02h dma rx write back descriptor from core to memory 04h dma tx read descriptor to core 05h dma tx write back descriptor from core to memory 06h dma tx read descriptor to core second queue 07h dma tx write back descriptor from core to memory second queue 08h dma tx read data 0 from main memory to ethernet 09h dma tx read data 1 from main memory to ethernet 0ah dma tx read data 2 from main memory to ethernet
intel ? 631xesb/632xesb i/o controller hub datasheet 139 functional description 5.4.4.1.6 pci power management enhanced support for the power management standard, pci local bus specification, revision 2.3 , and pci express specification is provided in the intel ? 631xesb/632xesb i/o controller hub integrated lan controller. the lan controller supports a large set of wake-up packets and the capability to wake the system from a low power state on a link status change. the lan controller enables the host system to be in a sleep state and remain virtually connected to the network. after a power management event or link status change is detected, the lan controller wakes the host system. the sections below describe these events, the lan controller power states, and estimated power consumption at each power state.(the estimated power consumption refers to chapeter6) the lan controller contains power management registers for pci, and implements two power states, d0 and d3, which vary from maximum power consumption at d0 to the minimum-power consumption at d3. pci transactions are allowed in only the d0 state, except for host accesses to the lan controller?s pci configuration registers. d0 is divided into two sub-states: d0u and d0a. additionally, the controller supports a dr state that is entered when perst# is de-asserted (including the d3 cold state).in the d3 cold state, the lan controller can provide wake-up capabilities. wake-up indications from the lan controller are provided by either the pe_wake# signal or a power management message according to the link state of the pci express. the amount of power required for the function is advertised in the power management data register, which is loaded from the eeprom. if d3cold is supported, the pme_en and pme_status bits of the power management control/status register (pmcsr), as well as their shadow bits in the wake up control register (wuc) will be reset only by the power up reset (detection of power rising). 5.4.4.2 reset operation the intel ? 631xesb/632xesb i/o controller hub integrated lan controller?s reset sources are described below: ? lan_pwr_good ? this reset acts as a master reset of the entire lan controller. it is level sensitive, and while it is 0 will hold all of the lan controller?s registers in reset. lan_pwr_good is interpreted to be an indication that device power supplies are all stable. lan_pwr_good changes state during system power-up. ? perst# ? the assertion of perst# indicates that both the power and the pci express clock sources are stable. this pin will assert an internal reset also after a d3cold exit. most units are reset on the rising edge of perst#. the only exception is the gio unit, which is kept in reset while perst# is de-asserted (level). 0bh dma tx read data 3 from main memory to ethernet 0ch dma rx write descriptor to core second queue 0eh dma rx write back descriptor from core to memorysecond queue 10h mng read data 11h mng write data 1eh pci express msi 1fh pci express message unit others reserved table 5-19. assignment of client ids (sheet 2 of 2) tag module client
140 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ? in-band pci express reset ? the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller will generate an internal reset in response to a physical layer message from a pci express bus or when the pci express link goes down (entry to polling or detect state). this reset is equivalent to pci reset in previous (pci) gigabit lan controllers. ? d3 hot to d0 transition ? this is also known as acpi reset. the intel ? 631xesb/ 632xesb i/o controller hub?s integrated lan controller generates an internal reset on the transition from d3 hot power state to d0 (caused after configuration writes from d3 to d0 power state). note that this reset is per function and resets only the function that transitioned from d3 hot to d0. ? software reset ? software can reset the intel ? 631xesb/632xesb i/o controller hub integrated lan controller by writing the device reset bit of the device control register (ctrl.rst). the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller re-reads the per-function eeprom fields after a software reset. bits that are normally read from the eeprom will be reset to their default hardware values. note that this reset is per function and resets only the function that received the software reset. pci configuration space (configuration and mapping) of the device is unaffected. ? force tco ? this reset is generated when manageability logic is enabled. it will be generated only if the reset on force tco bit of the eeprom?s management control word is 1. in pass through mode it is generated when receiving a forcetco smb command with bit 1 or bit 7 set. ? firmware (fw) reset ? this reset is activated by writing a 1 to the fwr bit in the host interface control register (hicr) in csr address 0x8f00. ? serdes link reset ? when the link reset bit of the device control register (ctrl.lrst) is written as a logic 1, the device is forced into a link reset state. in this state serdes auto-negotiation is disabled. the transmitter will send /c/ ordered sets when link reset is 1. auto-negotiation is initiated/restarted when lrst is transitions to 0. a link reset is relevant in only serdes mode. ? eeprom reset ? writing a 1 to the eeprom reset bit of the extended device control register (ctrl_ext.ee_rst) will cause the lan controller to re-read the per-function configuration from the eeprom, setting the appropriate bits in the registers loaded by the eeprom. ?p hy reset ? software can write a 1 to the phy reset bit of the device control register (ctrl.phy_rst) to reset the 82563 eb/82564 eb, through kumeran interface. intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) unit must configure the phy following a phy reset. 5.4.5 wake-up the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller supports following wakeup mechanism: ? pci express power management wakeup the pci express power management wakeup uses the pe_wake# pin to wake the system up. 5.4.5.1 pci express* power management wakeup the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller supports pci express power management based wakeups. it can generate system wake-up events from three sources:
intel ? 631xesb/632xesb i/o controller hub datasheet 141 functional description ? reception of a ?magic packet?. ? reception of a network wakeup packet. ? detection of a link change of state. activating pci express power management wakeup requires the following steps: ? the driver programs the wake up filter control register (wufc) to indicate the packets it wishes to wake up and supplies the necessary data to the ipv4/v6 address table (ip4at, ip6at) and the flexible filter mask table (ffmt), flexible filter length table (fflt), and the flexible filter value table (ffvt). it can also set the link status change wake up enable (lnkc) bit in the wake up filter control register (wufc) to cause wakeup when the link changes state. ? the os (at configuration time) writes a 1 to the pme_en bit of the power management control / status register (pmcsr.8). normally, after enabling wakeup, the os will write 11b to the lower two bits of the pmcsr to put the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller into low-power mode. once wakeup is enabled, the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller monitors incoming packets, first filtering them according to its standard address filtering method, then filtering them with all of the enabled wakeup filters. if a packet passes both the standard address filtering and at least one of the enabled wakeup filters, the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller will: ? set the pme_status bit in the power management control / status register (pmcsr) ? if the pme_en bit in the power management control / status register (pmcsr) is set, assert pe_wake# or send an inband pme message. ? store the first 128 bytes of the packet in the wakeup packet memory. ? set one or more of the ?received? bits in the wake up status register (wus). (the intel ? 631xesb/632xesb i/o controller hub will set more than one bit if a packet matches more than one filter.) ? set the packet length in the wake up packet length register (wupl). if enabled, a link state change wakeup will cause similar results, setting pme_status, asserting pe_wake# or send an inband pme message and setting the link status changed (lnkc) bit in the wake up status register (wus) when the link goes up or down. pe_wake# will remain asserted until the os either writes a 1 to the pme_status bit of the pmcsr register or writes a 0 to the pme_en bit. after receiving a wakeup packet, the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller will ignore any subsequent wakeup packets until the driver clears all of the ?received? bits in the wake up status register (wus). it will also ignore link change events until the driver clears the link status changed (lnkc) bit in the wake up status register (wus). 5.4.5.2 wakeup packets in pci express power management mode, the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller supports various wakeup packets using two types of filters:
142 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ? pre-defined filters ?flexible filters each of these filters will be enabled if the corresponding bit in the wake up filter control register (wufc) is set to 1. 5.4.5.2.1 pre-defined filters the following packets are supported by intel ? 631xesb/632xesb i/o controller hub lan core?s pre-defined filters: ? directed packet (including exact, multicast indexed, and broadcast) ?magic packet ? arp/ipv4 request packet ? directed ipv4 packet ? directed ipv6 packet each of these filters will be enabled if the corresponding bit in the wakeup filter control register (wufc) is set to 1. the explanation of each filter includes a table showing which bytes at which offsets are compared to determine if the packet passes the filter. both vlan frames and llc/snap can increase the given offsets if they are present. 5.4.5.2.2 directed exact packet the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller will generate a wakeup event upon reception of any packet whose destination address matches one of the 16 valid programmed receive addresses if the directed exact wake up enable bit is set in the wake up filter control register (wufc.ex). 5.4.5.2.3 directed multicast packet for multicast packets, the upper bits of the incoming packet?s destination address index a bit vector, the multicast table array that indicates whether to accept the packet. if the directed multicast wake up enable bit set in the wake up filter control register (wufc.mc) and the indexed bit in the vector is one then intel ? 631xesb/632xesb i/o controller hub will generate a wakeup event. the exact bits used in the comparison are programmed by software in the multicast offset field of the receive control register (rctl.mo). 5.4.5.2.4 broadcast if the broadcast wake up enable bit in the wake up filter control register (wufc.bc) is set the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller will generate a wake up event when it receives a broadcast packet. offset # of bytes field value action comment 0 6 destination address compare match any pre-programmed address offset # of bytes field value action comment 0 6 destination address compare see above paragraph
intel ? 631xesb/632xesb i/o controller hub datasheet 143 functional description 5.4.5.2.5 magic packet magic packets are defined as follows: magic packet technology details once the lan controller has been put into the magic packet mode, it scans all incoming frames addressed to the node for a specific data sequence, which indicates to the controller that this is a magic packet frame. a magic packet frame must also meet the basic requirements for the lan technology chosen, such as source address, destination address (which may be the receiving station?s ieee address or a multicast address which includes the broadcast address), and crc. the specific data sequence consists of 16 duplications of the ieee address of this node, with no breaks or interruptions. this sequence can be located anywhere within the packet, but must be preceded by a synchronization stream. the synchronization stream allows the scanning state machine to be much simpler. the synchronization stream is defined as 6 bytes of ffh. the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller will expect the destination address to either: 1. be the broadcast address (ff.ff.ff.ff.ff.ff) 2. match the value in receive address register 0 (rah0, ral0). this is initially loaded from the eeprom but may be changed by the driver. 3. match any other address filtering enabled by the driver. the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller will search for the contents of receive address register 0 (rah0, ral0) as the embedded ieee address. it will consider any non-ffh byte after a series of at least 6 ffs to be the start of the ieee address for comparison purposes. (that is,. it will catch the case of 7 ffs followed by the ieee address). as soon as one of the first 96 bytes after a string of ffs doesn?t match, it will continue to search for anther set of at least 6 ffs followed by the 16 copies of the ieee address later in the packet. note that this definition precludes the first byte of the destination address from being ff. a magic packet?s destination address must match the address filtering enabled in the configuration registers with the exception that broadcast packets will be considered to match even if the broadcast accept bit of the receive control register (rctl.bam) is 0. 5.4.5.2.6 arp/ipv4 request packet the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller will support reception of arp request packets for wake up if the arp bit is set in the wake up filter control register (wufc). four ipv4 addresses are supported which are programmed in the ipv4 address table (ip4at). a successfully matched packet must contain a broadcast mac address, a protocol type of 0x0806, an arp opcode of 0x01, and one of the four programmed ipv4 addresses. the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller also handles arp request packets that have vlan tagging on both ethernet ii and ethernet snap types. offset # of bytes field value action comment 0 6 destination address ff*6h compare
144 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.4.5.2.7 directed ipv4 packet the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller will support reception of directed ipv4 packets for wake up if the ipv4 bit is set in the wake up filter control register (wufc). four ipv4 addresses are supported which are programmed in the ipv4 address table (ip4at). a successfully matched packet must contain the station?s mac address, a protocol type of 0x0800, and one of the four programmed ipv4 addresses. the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller also handles directed ipv4 packets that have vlan tagging on both ethernet ii and ethernet snap types. 5.4.5.2.8 directed ipv6 packet the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller will support reception of directed ipv6 packets for wake up if the ipv6 bit is set in the wake up filter control register (wufc). one ipv6 address is supported and it is programmed in the ipv6 address table (ip6at). a successfully matched packet must contain the station?s mac address, a protocol type of 0x0800, and the programmed ipv6 address. the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller also handles directed ipv6 packets that have vlan tagging on both ethernet ii and ethernet snap types. 5.4.5.2.9 flexible filter intel ? 631xesb/632xesb i/o controller hub lan supports a total of four flexible filters. each filter can be configured to recognize any arbitrary pattern within the first 128 byte of the packet. to configure the flexible filter, the software programs the mask values, the required values and the minimum packet length. once enabled, the flexible filters will scan incoming packets for a match. if the filter encounters any byte in the packet where the mask bit is one and the byte doesn?t match the byte that was programmed by software, then the filter will fail that packet. if the filter reaches the required length without failing the packet, it passes the packet and generates a wake up event. it will ignore any mask bits set to one beyond the required length. the minimum length of the pattern that is supported is 2 bytes. 5.4.6 csma/cd unit the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller mac provides a complete csma/cd function supporting ieee 802.3 (10mb/s), 802.3u (100mb/s), 802.3z and 802.3ab (1000mb/s) implementations. the device performs all of the functions required for transmission, reception and collision handling called out in the standards. 5.4.6.1 speed and duplex the intel ? 631xesb/632xesb i/o controller hub lan controller can operate in 10mb/s, 100mb/s and 1gb/s. it supports both half duplex and full duplex when working in 10/ 100mb/s and full duplex in only 1gb/s. when operating in full-duplex mode, the lan controller can transmit and receive frames simultaneously. transmission starts regardless of the state of the internal receive path. when operating in half duplex, it can either receive or transmit at any given time. in this mode, transmission will start only when there is no carrier sense on the line, according to the 802.3 standard. reception starts when the external phy detects a valid frame on its receive differential pair. for proper operation, both the lan controller csma/cd module and the external phy must operate in the same speed and duplex mode. following reset, the external phy negotiates the speed and duplex with
intel ? 631xesb/632xesb i/o controller hub datasheet 145 functional description its link partner according o the 802.3 standard and selects the highest speed and duplex supported by both sides. the speed can also be forced by the lan driver, in which case, only half duplex is supported. the intel ? 631xesb/632xesb i/o controller hub lan controller receives status indications about the external phy's speed and duplex over the kumeran interface and sets its speed and duplex accordingly 5.4.6.2 flow control the lan controller supports ieee 802.3x frame-based flow control frames in only full duplex switched environment. the lan controller flow control feature is not intended to be used in shared media environments. flow control is optional in full-duplex mode and is selected through software configuration. when flow control is enabled, the intel ? 631xesb/632xesb i/o controller hub lan controller tracks its receive buffer free space and sends pause packets to the link partner to prevent the receive fifo from overflow. upon reception of a flow control packet, the intel ? 631xesb/632xesb i/o controller hub lan ceases transmission as a mean of protecting the link partner's receive buffer. 5.4.7 802.1q vlan support the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller provides several specific mechanisms to support 802.1q vlans: ? optional adding (for transmits) and stripping (for receives) of ieee 802.1q vlan tags. ? optional ability to filter packets belonging to certain 802.1q vlans. 5.4.7.1 transmitting and receiving 802.1q packets since the 802.1q tag is only four bytes, adding and stripping of tags could be done completely in software. (in other words, for transmits, software inserts the tag into packet data before it builds the transmit descriptor list, and for receives, software strips the 4 byte tag from the packet data before delivering the packet to upper layer software.) however, because adding and stripping of tags in software results in more over-head for the host, the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller has additional capabilities to add and strip tags in hardware. 5.4.7.1.1 adding 802.1q tags on transmits software may command the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller to insert an 802.1q vlan tag on a per packet basis. if ctrl.vme is set to 1, and the vle bit in the transmit descriptor is set to 1, then the intel ? 631xesb/ 632xesb i/o controller hub?s integrated lan controller will insert a vlan tag into the packet that it transmits over the wire. 5.4.7.1.2 stripping 802.1q tags on receives software may instruct the intel ? 631xesb/632xesb i/o controller hub?s integrated lan controller to strip 802.1 q vlan tags from received packets. the intel ? 631xesb/ 632xesb i/o controller hub?s integrated lan controller will indicate by way of the descriptor that the packet had a vlan tag that was stripped.
146 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.4.8 eeprom interface 5.4.8.1 general overview intel ? 631xesb/632xesb i/o controller hub uses an eeprom device for storing product configuration information. the eeprom is divided into three general regions: ? hardware accessed ? loaded by intel ? 631xesb/632xesb i/o controller hub after power-up, pci reset de-assertion, d3 --> d0 transition, or software commanded eeprom read (ctrl_ext.ee_rst). ? software accessed ? used by software only. ? firmware accessed ? used by bmc firmware. 5.4.8.2 eeprom device the eeprom interface supports an spi interface mode 0. it expects the eeprom to be capable of 2mhz operation. intel ? 631xesb/632xesb i/o controller hub is compatible with many sizes of 4-wire serial eeprom devices. if flexibility mode functionality is desired, up to 256 kbit serial spi compatible eeprom may be used. if no manageability or only pass-through mode is desired a 4 kbit serial spi compatib le eeprom may be used. all eeproms are accessed in 16-bit words (to be compatible with older designs) although the eeprom is designed to accept also an 8-bit data accesses. intel ? 631xesb/632xesb i/o controller hub will automatically determine the address size to be used with the spi eeprom it is connected to and set the eeprom size field of the eeprom/flash control and data register (eec.ee_addr_size) field appropriate. software can use this size to determine how to access the eeprom. the exact size of the eeprom will be determined within one of the eeprom words. note: the different eeprom sizes have two differing numbers of address bits (8 bits or 16 bits), and therefore must be accessed with a slightly different serial protocol. software must be aware of this if it accesses the eeprom using direct access. 5.4.8.3 software accesses intel ? 631xesb/632xesb i/o controller hub provides two different methods for software access to the eeprom. it can either use the built-in controller to read the eeprom, or access the eeprom directly using the eeprom?s 4-wire interface. please refer to the intel ? 631xesb/632xesb i/o controller hub lan eeprom map and programming information document for more information about software access to the eeprom. 5.4.9 serial flash interface intel ? 631xesb/632xesb i/o controller hub provides an external serial interface to a flash, or boot rom, device such as the atmel at25f1024 or at25fb512. all accesses to this device are controlled by intel ? 631xesb/632xesb i/o controller hub and are accessible to software as normal pci reads or writes to the flash memory mapping range. intel ? 631xesb/632xesb i/o controller hub supports serial flash devices with up to 64 mb (8 mb) of memory. the size of the flash implemented with intel ? 631xesb/632xesb i/o controller hub may be encoded into bits in the eeprom. the flash and expansion rom bars are reconfigured based on these eeprom settings. flash interface type is spi mode 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 147 functional description 5.4.9.1 flash interface operation intel ? 631xesb/632xesb i/o controller hub provides two different methods for software access to the flash. the flash can either be accessed by direct memory mapping, or software can directly control the 4-wire interface. by default the flash can only be read. to allow write operations, software has to enable write to the flash in the flash control and data register. using the legacy flash transactions the flash is read from, or written to, whenever the host cpu performs a read or a write operation to a memory location that is within the flash address mapping or upon boot by way of accesses in the space indicated by the expansion rom base address register. all accesses to the flash require the appropriate command sequence for the device used. refer to the specific flash data sheet for more details on reading from or writing to flash. accesses to the flash are based on a direct decode of cpu accesses to a memory window defined in either: 1. intel ? 631xesb/632xesb i/o controller hub?s flash base address register (pci express control register at offset 14h). 2. a certain address range of the ioaddr register defined by the io base address register (pci express configuration register at offset 18 h). 3. the expansion rom base address register (pci express control register at offset 30 h). intel ? 631xesb/632xesb i/o controller hub controls accesses to the flash when it decodes a valid access. another way for sw to access the flash is directly using the flash?s 4-wire interface through the flash access register. it can use this for reads, writes, or other flash operations (accessing the flash status register, erase). 5.4.9.2 flash write control the flash is write controlled by the 2 bits in the eeprom/flash control and data register (eec.fwe). note that attempts to write to the flash device should not be attempted when writes are disabled(fwe=01). behavior after such an operation is undefined, and may result in component and/or system hangs. after sending one byte write to the flash, sw can check if it can send the next byte to write (check if the write process in the flash had finished) by reading the flash access register, if bit (fla.fl_busy) in this register is set the current write did not finished, if bit (fla.fl_busy) is clear then the sw can continue and write the next byte to the flash. note: writing to the serial flash should be done, taking in account the limitations of the page boundaries, specifically to the flash memory type.
148 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.4.10 intel ? 631xesb/632xesb i/o controller hub mac-phy interconnection this section summarizes the modes of connection between mac and phy. 5.4.10.1 intel ? 631xesb/632xesb i/o controller hub ? phy kumeran connection this is the default connection between the intel ? 631xesb/632xesb i/o controller hub and intel dual/single 1gb phy - 82563eb/82564eb. the interface is based on the kumeran which is intel proprietary reduced pin count mac-phy interface. information about the kumeran signals and electrical specifications can be found in the separated kumeran specification. the signal that is optionally connected is: ? ser_clk_in. this 62.5 mhz/25 mhz clock is supplied by the 82563 eb/82564 eb (phy) to the kumeran block of the intel ? 631xesb/632xesb i/o controller hub. intel ? 631xesb/632xesb i/o controller hub can also use a local 62.5 mhz// 25 mhz clock oscillator instead of the clock signal from the 82563eb/82564eb. 5.4.10.2 intel ? 631xesb/632xesb i/o controller hub ? serdes backplane connection this mode implements 802.3 z protocol, including auto-negotiation. in this mode, the intel ? 631xesb/632xesb i/o controller hub lan controller is directly connected to the network without the need of an external phy. figure 5-8. intel ? 631xesb/632xesb i/o controller hub ? 82563eb/82564eb kumeran connection mac phy : 82563 eb / 82564 eb kumeran channel 0 receive kumeran channel 1 receive kumeran channel 0 transmit kumeran channel 1 transmit ser _ clk _ in intel ? 631xesb/632xesb i/o controller hub
intel ? 631xesb/632xesb i/o controller hub datasheet 149 functional description intel ? 631xesb/632xesb i/o controller hub has serdes port that conforms with picmg3.1 standard and is used for connecting the intel ? 631xesb/632xesb i/o controller hub lan to copper backplanes in blade servers. this serdes port can also work with fiber 1g transceiver. link_0 and link_1 pins are used as sig_det (signal detect) signals. the characteristics of sig_det signal are described in ieee 802.3 standard, clause 38.2. when high, sig_det indicates that a signal is detected; when low, it indicates that no signal is detected. for non-optical connection in backplane applications, sig_det signals will be shortened to ?1? (3.3v). 5.4.11 lan disabling the lan0_dis# and lan1_dis# pins are used as strapping pins to disable or enable each lan function. this allows changing dynamically the lan status at boot time, in order to either enabling or disabling it, upon user or system aesinistrator request. when a port is disabled, its pci express register set disappear and the mac is not functional and can not receive and transmit packets. the status of the pin is sampled at pci express reset time. figure 5-9. serdes backplane connection mac serdes channel 0 receive serdes channel 0 transmit backplane / optical phy serdes channel 1 receive serdes channel 1 transmit 62.5 mhz oscillator link _0 link _1 intel ? 631xesb/632xesb i/o controller hub
150 intel ? 631xesb/632xesb i/o controller hub datasheet functional description the flow to disable or enable a port is described below: 1. assume that following power up sequence lanx_dis# signals are driven hi (by internal or external pullup) 2. the pci express is established following the perst# de-assertion 3. bios recognize that a lan function in intel ? 631xesb/632xesb i/o controller hub should be disabled 4. the bios drive the lanx_dis# signal to the low level. 5. the bios issue an in-band reset (warm reset) to intel ? 631xesb/632xesb i/o controller hub on the pci express 6. as a result, intel ? 631xesb/632xesb i/o controller hub samples the lanx_dis# signals and disables the lan function 7. bios may start with the device enumeration procedure (the disabled lan function is invisible) 8. proceed with nominal operation re-enable could be done by driving high the lanx_dis_n signal, issue an in-band pci express reset and then request the user to issue a warm boot that generate bus enumeration. 5.4.11.1 board connection requirements the following figure shows the external board connection to control the port enabling / disabling. if this feature is to be implemented in a specific board the following changes should be made: 1. the lanx_dis# signal should be connected to bios controlled gpios 2. these gpios should be either input, pull up, or active high by default (at reset) to avoid disabling the lan for the management. they should be unchanged by reset (?sticky?). 3. the lan0_dis# and lan1_dis# pins may have internal pull-ups that are driven by aux power, so the driving gpios should be either powered by aux power or capable to withstand the power driven by the internal pull up even when not powered. alternatively, the gpios can be isolated from intel ? 631xesb/632xesb i/o controller hub using a pass-gate enabled by core power. figure 5-10. lan port disable vccaux 3_3 vccaux 3_3 gpio gpio lan 0_ dis # lan 1_ dis# lan 0_ dis _n lan 1_ dis_n intel ? 631xesb/632xesb i/o controller hub
intel ? 631xesb/632xesb i/o controller hub datasheet 151 functional description in any configuration, both lan0_dis# and lan1_dis# pins should have an external pull-up that is connected to vaux to avoid disabling of the lan if the internal pull-up is released. 5.5 board management controller (bmc) 5.5.1 management microcontroller system theory of operation the intel ? 631xesb/632xesb i/o controller hub implements an arc4 microcontroller and its memory subsystem for all manageability operations. the mms (management microcontroller system) includes interfaces to most modules and main nodes in the intel ? 631xesb/632xesb i/o controller hub lan. the intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) is operated by firmware (embedded software) and is a flexible infrastructure for server management implementation. this firmware can be loaded from external memory as the parallel flash. the intel ? 631xesb/632xesb2 i/o controller hub has two bmc support options. external bmc's are supported in what is referred to as "pass-thru" mode. pass-thru configuration is beyond the scope of this document. please refer to 82571/82572/esb2 lan system manageability application note (ap-497). the second option is to use the bmc that is integrated into the intel ? 631xesb/632xesb i/o controller hub. the resident bmc requires optional firmware to function. please contact your intel support representative to determine what sku supports this feature. a basic firmware is pre-programmed in the mms (management microcontroller system) rom, which can be configured by the eeprom/strapping options for one of the following modes: 1. load firmware from external memory, either by serial or parallel flash.(can be implemented as ipmi bmc or another server management implementation) 2. tco port / pass through mode ? in this mode the intel ? 631xesb/632xesb i/o controller hub is used as a pipe between the external management controller (that is, pass through mode. an external bmc) and ethernet networking hardware. for more details on this mode of operation please refer to the 82571/82572/esb2 lan system manageability application note (ap-497). 5.5.2 feature list the features of the intel ? 631xesb/632xesb i/o controller hub?s internal bmc include: ? arc4 processor working at 62.5 mhz speed ? 16kbyte i-cache and 16kbyte d-cache support for expansion bus accesses ? 256 kbytes of internal sram with dual port (one for code accesses and one for all other accesses) ? zero wait states. ? 192 kbytes rom including, pass through, asf, ide redirection and com redirection code ? zero wait states. ? interface to both lan ports of intel ? 631xesb/632xesb i/o controller hub allowing direct connection to the net and access to all lan registers. ? an expansion bus, allowing connection to: ? external flash prom. up to 16 mbytes as code memory over the expansion bus.
152 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ? external sram up to 32 mbytes over the expansion bus. ? external sdram 16mbyte or 32 mbytes (256 mbits) over the expansion bus. ? support for pld in expansion bus that implements a flash i/f. ? cryptographic module, supporting aes and rc4 encryption algorithms and sha1 and md5 authentication algorithms. ? 3 kcs functions, two of can be controlled by the bios, and residing on lpc bus, the 3rd implemented over pci express function (kcs is an interface between host software and bmc for more details see the ipmi specification). ? bt (block transfer) function over pci express (bt is an interface between software and bmc in ipmi specification, see the ipmi specification). ? ide function over pci express for ide redirection. ? usb rev1.1 function over pci express for usb re-direction implementing uhci interface. ? rs232 uart ? eight general propose input/output pins (gpio). ? fan controller pins (tradeoff with gpio) support for fan control and tachometer. ? host memory dma access ? can be used for ide redirection, usb redirection or any other purpose. ? three smbus and two fml/smbus ports. ? connection of the com redirection to lpc also ? arc debugging interface by way of jtag. ? flexible filters for lan. 8 vlan filters. ? sol function either trough pci_e or lpc (mutually exclusive). ? generation of nmi/smi by way of serirq. ? timers for periodic interrupts, real time clock and watchdog mechanisms ?ipmi/kcs interface (sms) ? ktfc redirect ? full bmc implementation, meaning a standalone microcontroller with independent i/os and memory (detail descriptions in section 5.5 ) ? secured mechanism for loadable regulated fw ? 3 kcs ports, one in pci space, 2 in lpc bus ? kt function made accessible from lpc bus ? usb redirection module, implemented with uhci standard, residing on pci express as device 5 ? bt module, residing on pci express as device 7 5.5.3 memory sub-system intel ? 631xesb/632xesb i/o controller hub mms memory subsystem includes a large internal code / data ram in addition to code rom. the memory system includes the following components: ? internal rom ? 192 kbytes ? internal sram ? 256 kbytes
intel ? 631xesb/632xesb i/o controller hub datasheet 153 functional description ? external parallel flash ? up to 16 mbytes. ? external ram ? either sram or sdram ? up to 32 mbytes. the internal sram is mapped to the code address space and to the data address space, which gives full flexibility in using it. the fw can access the code area (rom and ram) by using arc load/store commands. the internal ram is used also as buffer for receiving packets from the rx/tx filter and for transmitting packets, smb data buffer and more. the intel ? 631xesb/632xesb i/o controller hub bmc sdram controller only supports 16 or 32 bytes, 125mhz sdram, we don?t support 8m bytes or less sdram device. for example: the external parallel flash and external ram can be accessed either by fetch (code) or load/store (data) accesses. these accesses are cached by an i-cache and a d-cache. ta bl e 5 - 2 0 describes the mapping of the different components in the memory sub- system 5.5.4 instruction cache and data cache the i-cache is needed due to slow access time of p-flash and external ram, to optimize code fetch from p-flash. the instruction cache (i-cache) size is 16 kbytes and works with external instruction memory. to work with external sdram data memory intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) includes a data cache (d-cache). 5.5.5 external interfaces 5.5.5.1 pci express* functions the intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) implements the following pci express functions over the pci express bus: density micron part number 16m bytes mt48lc8m16a2 32m bytes mt48lc16m16a2 table 5-20. arc memory system table in intel ? 631xesb/632xesb i/o controller hub mms width size in kbytes address space comments internal rom 32 bit 192k 0x0000000 ? 0x002ffff 0ws internal ram 128 bit 256k 0x0080000 ? 0x00bffff 0ws pld 16 bit 128 bytes 0x00c00000 ? 0x00c0007f external pld access external parallel flash 16 bit up to 16m 0x1000000 ? 0x1ffffff programmable ws. cached accesses. external ram 16 bit up to 32m x2000000 ? 0x3ffffff cached accesses.
154 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ? function 4 ? sms function. this function is used for the implementation of the system management software interface of the ipmi specification. this function can implement kcs interface (see the ipmi specification). ? function 3 ? kt interface function. this function is used to implement the com port interface for the keyboard and text redirect/serial over lan (see serial over lan white paper). ? function 2 ? ide function. this function is used to implement the ide interface for the floppy/disk redirection. ? function 5 ? the usb 1.1 function for usb redirection implementing uhci. ? function 7 ? bt function. this function is used for the implementation of the system management software interface of the ipmi specification. this function can implement bt interface (see the ipmi specification). 5.5.5.1.1 pci express* function 2 ? ide interface to control remotely the machine it is useful to redirect the machine?s ide controller to a remote control machine that has ide cd-rom device and ide floppy device attached (usually attached to the management terminal window on a remote control station) or to have on the management console files that have a full copy of a cd-rom or a floppy (iso files). using such a feature will enable control of such a machine through the network without the need to physically be near that machine. intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) includes a standard native pci ide function with a single ide cable with cd- rom and floppy devices attached to it. the devices will be emulated by software on the management console. to achieve this functionality, intel ? 631xesb/632xesb i/o controller hub mms hardware contains an ide port functionality, while the firmware should implement autonomously a minimal subset of the ata commands. the complementary set of ata and atapi commands are redirected to the management console which interpret them by a dedicated sw. the management console sw will access locally either files that contain floppy or cd images, or real floppy and cd devices to service the mms initiated requests. ata/atapi command block registers intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) emulates two removable media devices: ls120 floppy and cd-rom drives. these two devices comply to the atapi specification. such devices must response to some basic ata commands as well as atapi specific commands. ata and atapi devices are supported by a set of registers which have a meaning that is command dependant (ata or atapi). hence the ide set of registers is interpreted as ata or atapi registers ? depends on the command issued. software usage there are several stages in the lifetime of the pc where interactive local control is needed. these stages will be identified and remote control support will be considered. b ios and efi usage at boot time at boot time, ia-32 pc compatible machines run their bios firmware. efi behaves similarly; that sw performs plug and play on existing pci devices and allocates resources. os boot is done on existing attached bootable devices. one of them is ide cd, or ide floppy (ls120).
intel ? 631xesb/632xesb i/o controller hub datasheet 155 functional description bios and efi can boot off this ide controller like it has cd and floppy drives attached locally. the bios or efi has to support a native pci ide controller (that use plug and play i/o addresses and interrupts rather than legacy i/o addresses and legacy interrupts). the bios and efi need also to support the ide floppy device (ls120 compatible). windows*, linux*, and cd install usage all type of os and sw can access the intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) ide function and find there a remote cd- rom or floppy, depends on the attached device at the remote console. intel ? 631xesb/ 632xesb i/o controller hub mms fw could encapsulate the written ide commands and send them over to the management console. results will return in a similar way. for more details of the ide function implementation please refer to the intel ? 631xesb/632xesb i/o controller hub software design guidelines. 5.5.5.1.2 pci express* function 3 ? kt (keyboard/text) interface intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) exposes a standard com port that can be used by the host software (bios, efi, os) to redirect its text output or keyboard input through it. to control remotely the managed machine intel ? 631xesb/632xesb i/o controller hub mms supports redirect of the on-screen text and keyboard to a remote control screen (usually a terminal window on a remote control station). the keyboard and text redirection enables the control of such a machine through the network without the need to be physically near that machine. com port registers intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) implements a set of registers which are mapped into i/o space and to memory space. this set of registers are similar/compatible to those of the 16550 device. dual mapping is needed for two different applications. typically in ia-32 machines, bios and os drivers access the com ports using i/o mapped registers. in the itanium processor family, system firmware typically accesses devices through memory access. the two methods access the same registers on the device. there are 8 registers implemented in the device. the i/o bar reflects this size exactly, while the memory bar cannot expose fewer than 16 registers by pci definition. pci specification encourages implementations to expose not fewer than 4k registers through memory bars. mms decodes 4-kbyte space, while the first 8 bytes are mapped to the those registers and the rest are hard coded in ?read? to a value of 0. bios text and keyboard at boot time at boot time, ia-32 pc compatible machines run their bios code. the bios writes its messages and draws its menus on the attached vga screen in text mode. user is prompted to intervene in the flow of the boot process through the keyboard. there are some bios that already support screen text and keyboard redirection to one of the machine?s com ports. other bios do not have such a capability. in order to support screen text redirection to another output device, the bios has to be changed and provide sw access to the screen written data. well behaved sw, including bios and dos write to the screen through a standard int10 api. by intercepting int10 calls, the bios can copy the calling parameters and interpret the write data commands by sending them over the com port. mms (management microcontroller system) can redirect the data from the com port to the management console by way of the lan.
156 intel ? 631xesb/632xesb i/o controller hub datasheet functional description there are utilities (such as scsi cards? bios boot roms) which write directly to the screen memory buffer. these writes can not be intercepted as described above. a more general method that can cover direct access to the screen memory is a code that is chained to the bios timer interrupt and every timer tick reads the screen text buffer and looks for new updates in it. keyboard input for the bios user interface can be read from the com port and be placed in the keyboard input buffer. bios software can either poll the com port triggered by timer interrupt or by com port interrupt (generated by the chip upon receive data available in the com port buffer. efi text and keyboard at boot time efi is designed to support text and keyboa rd redirection over com port. no specific additions are needed in efi to be supported. linux text and keyboard at os start and while os is running linux is natively equipped with text and keyboard redirection to com port. no special software is needed in order to redirect if we implement com port function. windows text and keyboard while os is running windows.net has a new ems (emergency management services) facility. this specification allows text messages and keyboard control to be sent through a standard com port as out of band control. os boot options selection, os upgrade, os installation, networking setup, applications setup and control and blue screen messages are routed to the selected com port interface. for more details, see http:// www.microsoft.com/hwdev/platform/server/headless. 5.5.5.1.3 pci express* function 4 ? system management software (sms) interface the sms interface implements the ipmi kcs interface. this interface is connected to the system manageability sw through pci express function 4. for each kcs cluster, there are four 8-bit registers that are used for communication between software and intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system). control register. 1. status register ? read only by the device driver. 2. data in ? read only by firmware. 3. data out ? read only by the device driver. the sms block will generate an interrupt to the arc (upon configuration) whenever the control register is being written by the device driver. intel ? 631xesb/632xesb i/o controller hub mms can work with the device driver on an interrupt or polling basis. 5.5.5.1.4 pci express* function 5 ? uhci interface uhci is a standard interface used to interface between a usb driver and the usb 1.1 controller. in intel ? 631xesb/632xesb i/o controller hub/bmc, it is used to emulate a usb controller and provide usb redirection capabilities.the implementation of the uhci functionality, other than the register set and interrupts generation, is the responsibility of the fw.
intel ? 631xesb/632xesb i/o controller hub datasheet 157 functional description 5.5.5.1.5 pci express* function 7 - bt interface the bt interface is so named because an entire block of message data is buffered before the management controller is notified of available data. this is different from the smic and kcs interfaces, which are byte-transfer oriented. a bt interface capabilities command provides supplementary information about extended buffer sizes and other elements of the interface. 5.5.5.2 smbus and fast management link bus interfaces in intel ? 631xesb/632xesb i/o controller hub bmc there are 5 smb interfaces. smb interfaces are master/slave interface. two interfaces can be used as either fast management link (fml) interfaces or as standard smbus and the rest are conventional smbus. though the register sets are identical, only smb0 and smb1 may be used as fml. notes: 1. port number 0 and number 1 can be either fml or smbus ports. 2. slave and master interfaces are independent one each other to allow the slave and the master working together. in order to enhance the performance, dmas were added to the master machine. 3. intel recommends using smbus 3 for passing traffic between the tco port and an external bmc. 5.5.5.2.1 fml description overview the fast management link bus (fml) is a point-to-point wire interface. the fml bus is based on the principles of the smbus and can work up to 8mhz. the fml is a single master and single slave bus. general characteristics the fml bus is point-to-point wire interface. the main differences between the smbus and the fml is that the fml is point-to-point (one master, one slave) and it is not an open-drain bus. each wire in the interface is driven by a single source (master or slave). table 5-21. intel ? 631xesb/632xesb i/o controller hub bmc smbus interface usage summary interface usage master/slave ports pads smb0 smbus or fml master/slave smbd0 smbclk0 flbsd0 flbsintex0 smb1 smbus master/slave smbd1 smbclk1 flbsd1 flbsintex1 smb2 smbus master/slave smbd2 smbclk2 smbalrt_2 smb3 smbus master/slave smbd3 smbclk3 smbalrt_3 smb4 smbus master/slave smbd4 smbclk4 smbalrt_4
158 intel ? 631xesb/632xesb i/o controller hub datasheet functional description in the fml there is only one master and one slave. these two devices cannot change their role: one of them is always the master while the other is always the slave. the following figure shows how the fml is connected between the two devices and the relevant smbus pad used. the flbmck is the clock of the bus, which is always driven by the master. the flbmd is the data line driven by the master while flbsd is the data line driven by the slave. both slave and master data lines are not changed while the flbmck is high (unless it is a start or stop condition). the flbsintex that is driven by the slave device is used for two purposes: 1. alert the master device to read from slave. when the interrupt is asserted, it will be asserted until the next start. 2. clock extension ? when set zero it indicates the master to extend its current clock state (if the master clock is high it should remain high until the flbsintex is high again). this is way the slave can hold the transaction when it is not ready yet. the flbsintex functions as an alert signal while the bus is idle (between stop to start) and it functions as an extension indication from the slave device during the transaction itself. the behavior of the bus and the transactions on the bus are the same as in smbus (start, stop, repeated start, and so forth). 5.5.5.3 general purpose i/o pins the bmc has an 8 bit gpio port. the gpio can be used in the following modes: ?output ? input ?output pwm ? input fan tachometer mode 5.5.5.3.1 pwm mode pwm mode is used to control devices on the board according to the duty cycle of pin as an output. figure 5-11. fml topology slave flbsintex flbsd flbmd (smbd) flbmck (smbclk) master
intel ? 631xesb/632xesb i/o controller hub datasheet 159 functional description in figure 5-12 , the two periods togv and cntv are fields of gpio control register. in pwm mode the 8-bit counter starts counting from 0 until cntv. ? in value 0 the pin is set. ? in value togv the pin is reset ? in value cntv the counter is reset. ? the polarity is controlled by a different field. ? any write to the control register will restart the counter. 5.5.5.3.2 fan tachometer mode the fan tachometer mode is used to sense the states of devices on the board according to time between pulses. it measures the amount of time it took for a programmable number of pulses on the input pin. in this mode the pin is an input, and two counters are used: the time counter and the pulse counter. after setting fan tachometer mode by writing to the control register, the 8 bit time counter is reset, and the pulse counter is loaded with the cntv value. the pulse counter decrements each rising or falling edge (the polarity is programmable) of the input pin. when the counter reaches 0, it is disabled. the time counter starts counting on the first edge of the pin and stops after the pulse counter reaches 0. 5.5.5.4 uart interface the uart performs serial-to-parallel conversion on data originating from modems or other serial devices, and performs parallel-to-serial conversion on data from the arc to these devices. the uart registers are compatible with the 16550 device. the arc can read the complete status of the uart at any time during the functional operation. status information reported includes the type and condition of the transfer operations being performed by the uart, as well as any error conditions (parity, overrun, framing, or break interrupt). the arc can program the following serial-interface characteristics: ? 5, 6, 7 or 8 bit characters ? even, odd, or no-parity bit generation and detection ? 1, 1.5 or 2 stop bit generation ?baud generation figure 5-12. pwm mode duty cycle
160 intel ? 631xesb/632xesb i/o controller hub datasheet functional description the uart includes the modem control functions. the uart also has a loop-back mode control for communications link fault isolation as well as break, parity, overrun, and framing error simulation. 5.5.5.5 eeprom write/read interface this interface is not part of intel ? 631xesb/632xesb i/o controller hub mms hardware. the arc microcontroller can use the mac csr interface in order to access the eprom unit of the lan for read/write single byte. 5.5.5.6 expansion bus and external memory devices intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) provides an interface to external memory devices. this interface includes multiplexed address/data bus and the control signals that are needed to control the memory devices. intel ? 631xesb/632xesb i/o controller hub mms can handle two different types of memory. the first one is a flash memory, which will typically be used for code. the second type will be either an sram or an sdram memory. all the signals will be common to both types of memory except the chip-enable signal and the clock signal (available only for sync memories). there are two different sets of those parameters, each associated with one ce (chip enable) signal. 5.5.6 memory host dma the host interface connects intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) to the host memory as a master for read/write transactions. the read/write transactions of the mms host dma are the lowest priority between all intel ? 631xesb/632xesb i/o controller hub dma channels that use this host arbiter. the memory dma could be used for ide redirection usb redirection, or other purposes. figure 5-13. expansion bus signal block diagram sdram /sram sdr_addr[8:0] sdr_data[ 15 :0] sdr_clkout sdr_ba[1:0] sdr_ras_n sdr_cas_n sdr_cs_n sdr_we_n sdr_cke sdr_dqm[ 1 :0] flash / pld ebus_ad[ 24 : 0] latch ebus_we ebus_oe ebus_ce_1 (flash cs) ebus_be[1:0] adv ebus_alat optional sdp sdr_addr[ 12 : 9] ebus_clk_2 ebus_ce2_sd_cs (sram cs) act_led0_sdp30 (pld_cs) intel ? 631xesb/632xesb i/o controller hub
intel ? 631xesb/632xesb i/o controller hub datasheet 161 functional description the host interface is built from two different channels: ? write channel ? this channel allows the mms to write data from the internal data memory of the mms into the host main memory. this channel has no restriction on the memory alignment of the location of the data in the host memory. write channels request are limited to the size of 128 bytes. ? read channel ? this channel allows the mms to read data from the host memory into the data memory of the mms. data should be 128 bit aligned in the bmc memory. read request are limited to 128 bytes. these two channels do not work simultaneously, which means that the mms can only do a write transaction or a read transaction at any given time. 5.5.7 cryptography module intel ? 631xesb/632xesb i/o controller hub mms (management microcontroller system) provides a hardware accelerator for encryption and authentication algorithms which can be used to offload cryptographic and authentication tasks from the arc and to improve the performance in the ov erall server management solution. the cryptography module performs the following functions: ? encryption/decryption based on rc4 and aes algorithms ? authentication based on sha1/md5 algorithms. in addition, the cryptography module includes a dma engine, allowing transferring of data within the bmc memory space. this dma can be used even without applying a cryptographic algorithm. 5.5.7.1 rc4* hardware accelerator rc4* is a stream cipher symmetric key algorithm from rsa. rc4 uses a variable length key from 1 to 256 bytes to initialize a 256-byte state table. the state table is used for subsequent generation of pseudo-random bytes and then to generate a pseudo- random stream, which is xored with the plaintext to give the ciphertext. each element in the state table is swapped at least once. the implementation of the algorithm contains two init phases that will randomize an init table. during run time one of the 256 bytes will be chosen through a random method and this byte will be xored with the incoming data, resulting in cipher text (encryption) or plain text (decryption). 5.5.7.2 aes hardware accelerator this standard specifies the rijndael algorithm, a symmetric block cipher that can process data blocks of 128 bits, using cipher keys with lengths of 128, 192,and 256 bits. rijndael was designed to handle additional block sizes and key lengths. however, only 128 bits are implemented in the intel ? 631xesb/632xesb i/o controller hub. aes is used as recommended by ietf documents, in esp (cbc mode). 5.5.7.3 hmac-sha1/md5 hardware accelerator hmac consists of a mechanism for message authentication using cryptographic hash functions.hmac can be used with any iterative cryptographic hash function, for example, md5 or sha-1, in combination with a secret shared key.
162 intel ? 631xesb/632xesb i/o controller hub datasheet functional description the sha1 algorithm specifies a secure hash algorithm, for computing a condensed representation of a message or a data file. when a message of any length < 2 64 bits is input, the sha-1 produces a 160-bit outp ut called a message digest. the message digest can then, for example, be input to a signature algorithm, which generates or verifies the signature for the message. the md5 algorithm takes as input a message of arbitrary length and produces as output a 128-bit ?fingerprint? or ?message digest? of the input. it is conjectured that it is computationally infeasible to produce two messages having the same message digest, or to produce any message having a given pre-specified target message digest. 5.6 lpc bridge (with system and management functions) (d31:f0) the lpc bridge function of the intel ? 631xesb/632xesb i/o controller hub resides in pci device 31:function 0. in addition to the lpc bridge function, d31:f0 contains other functional units including dma, interrupt controllers, timers, power management, system management, gpio, and rtc. in this chapter, registers and functions associated with other functional units (power management, gpio, usb, ide, and so forth) are described in their respective sections. 5.6.1 lpc interface the intel ? 631xesb/632xesb i/o controller hub implements an lpc interface as described in the low pin count interface specification, revision 1.1 . the lpc interface to the intel ? 631xesb/632xesb i/o controller hub is shown in figure 5-14 . the lpc controller implements all of the signals that are shown as optional, but peripherals are not required to do so. for intel ? 631xesb/632xesb i/o controller hub lpc controller: ? slsmi# can be connected to any of the smi capable gpio signals. ? the super i/o?s pme# can be connected to the pci pme# signal; however, this may cause software problems. a better choice is to connect it to one of the lpc controller?s sci capable gpio signals. ? the lpc controller?s sus_stat# signal is connected directly to the lpcpd# signal. all the other signals have the same name on the lpc controller and on the lpc i/f. figure 5-14. lpc interface diagram
intel ? 631xesb/632xesb i/o controller hub datasheet 163 functional description 5.6.1.1 lpc cycle types the intel ? 631xesb/632xesb i/o controller hub implements all of the cycle types described in the low pin count interface specification, revision 1.0 . ta b l e 5 - 2 2 shows the cycle types supported by the intel ? 631xesb/632xesb i/o controller hub. notes: 1. for memory cycles below 16 mb that do not target enabled firmware hub ranges, the intel ? 631xesb/ 632xesb i/o controller hub performs standard lpc memory cycles. it attempts only 8-bit transfers. if the cycle appears on pci as a 16-bit transfer, it appears as two consecutive 8-bit transfers on lpc. likewise, if the cycle appears as a 32-bit transfer on pci, it appears as four consecutive 8-bit transfers on lpc. if the cycle is not claimed by any peripheral, it is subsequently aborted, and the intel ? 631xesb/632xesb i/o controller hub returns a value of all 1s to the processo r. this is done to maintain compatibility with isa memory cycles where pull-up resistors would keep the bus high if no device responds. 2. bus master read or write cycles must be naturally aligned. for example, a 1-byte transfer can be to any address. however, the 2-byte transfer must be word aligned (that is, with an address where a0=0). a dword transfer must be dword aligned (that is, with an address where a1 and a0 are both 0). 5.6.1.2 start field definition note: all other encodings are reserved. 5.6.1.3 cycle type / direction (cyctype + dir) the intel ? 631xesb/632xesb i/o controller hub always drives bit 0 of this field to 0. peripherals running bus master cycles must also drive bit 0 to 0. ta bl e 5 - 2 4 shows the valid bit encodings. table 5-22. lpc cycle types supported cycle type comment memory read single: 1 byte only memory write single: 1 byte only i/o read 1 byte only. intel ? 631xesb/632xesb i/o controller hub breaks up 16- and 32-bit processor cycles into multiple 8-bit transfers. see note 1 below. i/o write 1 byte only. intel ? 631xesb/632xesb i/o controller hub breaks up 16- and 32-bit processor cycles into multiple 8-bit transfers. see note 1 below. dma read can be 1, or 2 bytes dma write can be 1, or 2 bytes bus master read can be 1, 2, or 4 bytes. (see note 2 below) bus master write can be 1, 2, or 4 bytes. (see note 2 below) table 5-23. start field bit definitions bits[3:0] encoding definition 0000 start of cycle for a generic target 0010 grant for bus master 0 0011 grant for bus master 1 1111 stop/abort: end of a cycle for a target.
164 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.6.1.4 size bits[3:2] are reserved. the intel ? 631xesb/632xesb i/o controller hub always drives them to 00. peripherals running bus master cycles are also supposed to drive 00 for bits 3:2; however, the intel ? 631xesb/632xesb i/o controller hub ignores those bits. bits[1:0] are encoded as listed in ta bl e 5 - 2 5 . 5.6.1.5 sync valid values for the sync field are shown in ta bl e 5 - 2 6 . note: all other combinations are reserved. table 5-24. cycle type bit definitions bits[3:2] bit1 definition 00 0 i/o read 00 1 i/o write 01 0 memory read 01 1 memory write 10 0 dma read 10 1 dma write 11 x reserved. if a peripheral performing a bus master cycle generates this value, the intel ? 631xesb/632xesb i/o controller hub aborts the cycle. table 5-25. transfer size bit definition bits[1:0] size 00 8-bit transfer (1 byte) 01 16-bit transfer (2 bytes) 10 reserved. the intel ? 631xesb/632xesb i/o controller hub never drives this combination. if a peripheral running a bus master cycle drives this combination, the intel ? 631xesb/ 632xesb i/o controller hub may abort the transfer. 11 32-bit transfer (4 bytes) table 5-26. sync bit definition bits[3:0] indication 0000 ready: sync achieved with no error. for dma transfers, this also indicates dma request deassertion and no more transfers desired for that channel. 0101 short wait: part indicating wait-states. for bus master cycles, the intel ? 631xesb/ 632xesb i/o controller hub does not use this encoding. instead, the intel ? 631xesb/ 632xesb i/o controller hub uses the long wait encoding (see next encoding below). 0110 long wait: part indicating wait-states, and many wait-states will be added. this encoding driven by the intel ? 631xesb/632xesb i/o controller hub for bus master cycles, rather than the short wait (0101). 1001 ready more (used only by peripheral for dma cycle): sync achieved with no error and more dma transfers desired to continue after this transfer. this value is valid on only dma transfers and is not allowed for any other type of cycle. 1010 error: sync achieved with error. this is generally used to replace the serr# or iochk# signal on the pci/isa bus. it indicates that th e data is to be transferred, but there is a serious error in this transfer. for dma transfers, this not only indicates an error, but also indicates dma request deassertion and no more transfers desired for that channel.
intel ? 631xesb/632xesb i/o controller hub datasheet 165 functional description 5.6.1.6 sync time-out there are several error cases that can occur on the lpc interface. the intel ? 631xesb/ 632xesb i/o controller hub responds as defined in section 4.2.1.9 of the low pin count interface specification, revision 1.1 to the stimuli described therein. there may be other peripheral failure conditions; however, these are not handled by the intel ? 631xesb/632xesb i/o controller hub. 5.6.1.7 sync error indication the intel ? 631xesb/632xesb i/o controller hub responds as defined in section 4.2.1.10 of the low pin count interface specification, revision 1.1 . upon recognizing the sync field indicating an error, the intel ? 631xesb/632xesb i/o controller hub treats this as serr by reporting this into the device 31 error reporting logic. 5.6.1.8 lframe# usage the intel ? 631xesb/632xesb i/o controller hub follows the usage of lframe# as defined in the low pin count interface specification , revision 1.1 . the intel ? 631xesb/632xesb i/o controller hub performs an abort for the following cases (possible failure cases): ?intel ? 631xesb/632xesb i/o controller hub starts a memory, i/o, or dma cycle, but no device drives a valid sync after four consecutive clocks. ?intel ? 631xesb/632xesb i/o controller hub starts a memory, i/o, or dma cycle, and the peripheral drives an invalid sync pattern. ? a peripheral drives an illegal address when performing bus master cycles. ? a peripheral drives an invalid value. 5.6.1.9 i/o cycles for i/o cycles targeting registers specified in the intel ? 631xesb/632xesb i/o controller hub?s decode ranges, the intel ? 631xesb/632xesb i/o controller hub performs i/o cycles as defined in the low pin count interface specification, revision 1.1 . these are 8-bit transfers. if the processor attempts a 16-bit or 32-bit transfer, the intel ? 631xesb/632xesb i/o controller hub breaks the cycle up into multiple 8-bit transfers to consecutive i/o addresses. note: if the cycle is not claimed by any peripheral (and subsequently aborted), the intel ? 631xesb/632xesb i/o controller hub returns a value of all 1s (ffh) to the processor. this is to maintain compatibility with isa i/o cycles where pull-up resistors would keep the bus high if no device responds. 5.6.1.10 bus master cycles the intel ? 631xesb/632xesb i/o controller hub supports bus master cycles and requests (using ldrq#) as defined in the low pin count interface specification, revision 1.1 . the intel ? 631xesb/632xesb i/o controller hub has two ldrq# inputs, and thus supports two separate bus master devices. it uses the associated start fields for bus master 0 (0010b) or bus master 1 (0011b). note: the intel ? 631xesb/632xesb i/o controller hub does not support lpc bus masters performing i/o cycles. lpc bus masters should only perform memory read or memory write cycles.
166 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.6.1.11 lpc power management lpcpd# protocol same timings as for sus_stat#. upon driving sus_stat# low, lpc peripherals drive ldrq# low or tri-state it. intel ? 631xesb/632xesb i/o controller hub shuts off the ldrq# input buffers. after driving sus_stat# active, the intel ? 631xesb/632xesb i/ o controller hub drives lframe# low, and tri-states (or drive low) lad[3:0]. note: the low pin count interface specification, revision 1.1 defines the lpcpd# protocol where there is at least 30 s from lpcpd# assertion to lrst# assertion. this specification explicitly states that this protocol applies only to entry/exit of low power states which does not include asynchronous reset events. the intel ? 631xesb/ 632xesb i/o controller hub asserts both sus_stat# (connects to lpcpd#) and pcirst# (connects to lrst#) at the same time when the core logic is reset (by way of cf9h, pwrok, or sys_reset#, and so forth). this is not inconsistent with the lpc lpcpd# protocol. 5.6.1.12 configuration and intel ? 631xesb/632xesb i/o controller hub implications lpc i/f decoders to allow i/o cycles and memory mapped cycles to go to the lpc interface, the intel ? 631xesb/632xesb i/o controller hub has several decoders. during configuration, the intel ? 631xesb/632xesb i/o controller hub must be programmed with the same decode ranges as the peripheral. the decoders are programmed by way of the device 31:function 0 configuration space. note: the intel ? 631xesb/632xesb i/o controller hub cannot accept pci write cycles from pci-to-pci bridges or devices with similar characteristics (specifically those with a ?retry read? feature which is enabled) to an lpc device if there is an outstanding lpc read cycle towards the same pci device or bridge. these cycles are not part of normal system operation, but may be encountered as part of platform validation testing using custom test fixtures. bus master device mapping and start fields bus masters must have a unique start field. in the case of the intel ? 631xesb/ 632xesb i/o controller hub that supports two lpc bus masters, it drives 0010 for the start field for grants to bus master #0 (requested by way of ldrq0#) and 0011 for grants to bus master #1 (requested by way of ldrq1#.). thus, no registers are needed to configure the start fields for a particular bus master. 5.7 dma operation (d31:f0) the intel ? 631xesb/632xesb i/o controller hub supports lpc dma using a dma controller. the dma controller has registers that are fixed in the lower 64 kb of i/o space. the dma controller is configured using registers in the pci configuration space. these registers allow configuration of the channels for use by lpc dma. the dma circuitry incorporates the functionality of two 82c37 dma controllers with seven independently programmable channels ( figure 5-15 ). dma controller 1 (dma-1) corresponds to dma channels 0?3 and dma controller 2 (dma-2) corresponds to channels 5?7. dma channel 4 is used to cascade the two controllers and defaults to cascade mode in the dma channel mode (dcm) register. channel 4 is not available for
intel ? 631xesb/632xesb i/o controller hub datasheet 167 functional description any other purpose. in addition to accepting requests from dma slaves, the dma controller also responds to requests that software initiates. software may initiate a dma service request by setting any bit in the dma channel request register to a 1. each dma channel is hardwired to the compatible settings for dma device size: channels [3:0] are hardwired to 8-bit, count-by-bytes transfers, and channels [7:5] are hardwired to 16-bit, count-by-words (address shifted) transfers. intel ? 631xesb/632xesb i/o controller hub provides 24-bit addressing in compliance with the isa-compatible specification. each channel includes a 16-bit isa-compatible current register which holds the 16 least-significant bits of the 24-bit address, an isa- compatible page register which contains the eight next most significant bits of address. the dma controller also features refresh address generation, and autoinitialization following a dma termination. 5.7.1 channel priority for priority resolution, the dma consists of two logical channel groups: channels 0?3 and channels 4?7. the mode of operation for each controller is determined by the dma command register (address 08h for channels 0-3, d0h for channels 4-7). since channels 0-3 are cascaded onto channel 4, any request seen on channel 0 - 3 appears as a request on channel 4. the dma controller stops rotating when an nmi is pending. in fixed mode, the lowest numbered channel in a channel group receives highest priority. therefore, channel 0 is the highest priority device of channels 0 - 3, and channel 4 is the highest priority device of channels 4 - 7. when both channels are programmed in fixed mode, channel 0 has highest priority, and channel 7 the lowest. in rotating mode, the lowest numbered channel starts out with highest priority. when it is serviced, the next numbered channel receives highest priority, and the previous channel receives lowest priority. for example, if channel 0 has highest priority and is requesting, it will win arbitration, then will be the lowest priority channel until channel 1, 2, and 3 have been serviced. due to the nature of channel 0 - 3 being cascaded onto channel 4, rotating mode adds some peculiarities to the arbitration scheme. ta b l e 5 - 2 7 lists arbitration winners, assuming all channels were requesting. figure 5-15. intel ? 631xesb/632xesb i/o controller hub dma controller
168 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.7.2 address compatibility mode when the dma is operating, the addresses do not increment or decrement through the high and low page registers. therefore, if a 24-bit address is 01ffffh and increments, the next address is 010000h, not 020000h. similarly, if a 24-bit address is 020000h and decrements, the next address is 02ffffh, not 01ffffh. however, when the dma is operating in 16-bit mode, the addresses still do not increment or decrement through the high and low page registers but the page boundary is now 128 k. therefore, if a 24-bit address is 01fffeh and increments, the next address is 000000h, not 0100000h. similarly, if a 24-bit address is 020000h and decrements, the next address is 03fffeh, not 02fffeh. this is compatible with the 82c37 and page register implementation used in the pc-at. this mode is set after cpurst is valid. 5.7.3 summary of dma transfer sizes ta b l e 5 - 2 8 lists each of the dma device transfer sizes. the column labeled ?current byte/word count register? indicates that the register contents represents either the number of bytes to transfer or the number of 16-bit words to transfer. the column labeled ?current address increment/decrem ent? indicates the number added to or taken from the current address register after each dma transfer cycle. the dma channel mode register determines if the current address register will be incremented or decremented. 5.7.3.1 address shifting when programmed for 16-bit i/o count by words the intel ? 631xesb/632xesb i/o controller hub maintains compatibility with the implementation of the dma in the pc at that used the 82c37. the dma shifts the addresses for transfers to/from a 16-bit device count-by-words. note: the least significant bit of the low page re gister is dropped in 16-bit shifted mode. when programming the current address register (when the dma channel is in this mode), the current address must be programmed to an even address with the address value shifted right by one bit. table 5-27. dma channel priority current both fixed lower fixed, upper rotating lower rotating, upper fixed both rotating 0 0, 1, 2, 3, 5, 6, 7 5, 6, 7, 0, 1, 2, 3 1 , 2, 3, 0, 5, 6, 7 5, 6, 7, 1, 2, 3, 0 1 0, 1, 2, 3, 5, 6, 7 5, 6, 7, 0, 1, 2, 3 2 , 3, 0, 1, 5, 6, 7 5, 6, 7, 2, 3, 0, 1 2 0, 1, 2, 3, 5, 6, 7 5, 6, 7, 0, 1, 2, 3 3 , 0, 1, 2, 5, 6, 7 5, 6, 7, 3, 0, 1, 2 3 0, 1, 2, 3, 5, 6, 7 5, 6, 7, 0, 1, 2, 3 0 , 1, 2, 3, 5, 6, 7 5, 6, 7, 0, 1, 2, 3 5 0, 1, 2, 3, 5, 6, 7 6, 7, 0, 1, 2, 3, 5 0 , 1, 2, 3, 5, 6, 7 6, 7, 0, 1, 2, 3, 5 6 0, 1, 2, 3, 5, 6, 7 7, 0, 1, 2, 3, 5, 6 0 , 1, 2, 3, 5, 6, 7 7, 0, 1, 2, 3, 5, 6 7 0, 1, 2, 3, 5, 6, 7 0, 1, 2, 3, 5, 6, 7 0 , 1, 2, 3, 5, 6, 7 0, 1, 2, 3, 5, 6, 7 table 5-28. dma transfer size dma device date size and word count current byte/word count register current address increment/decrement 8-bit i/o, count by bytes bytes 1 16-bit i/o, count by words (address shifted) words 1
intel ? 631xesb/632xesb i/o controller hub datasheet 169 functional description the address shifting is shown in ta b l e 5 - 2 9 . note: the least significant bit of the page regi ster is dropped in 16-bit shifted mode. 5.7.4 autoinitialize by programming a bit in the dma channel mode register, a channel may be set up as an autoinitialize channel. when a channel undergoes autoinitialization, the original values of the current page, current address and current byte/word count registers are automatically restored from the base page, address, and byte/word count registers of that channel following tc. the base registers are loaded simultaneously with the current registers by the microprocessor when the dma channel is programmed and remain unchanged throughout the dma service. the mask bit is not set when the channel is in autoinitialize. following autoinitialize, the channel is ready to perform another dma service, without processor intervention, as soon as a valid dreq is detected. 5.7.5 software commands there are three additional special software commands that the dma controller can execute. the three software commands are: ? clear byte pointer flip-flop ?master clear ? clear mask register they do not depend on any specific bit pattern on the data bus. table 5-29. address shifting in 16-bit i/o dma transfers output address 8-bit i/o programmed address (ch 0?3) 16-bit i/o programmed address (ch 5?7) (shifted) a0 a[16:1] a[23:17] a0 a[16:1] a[23:17] 0 a[15:0] a[23:17]
170 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.8 lpc dma dma on lpc is handled through the use of the ldrq# lines from peripherals and special encodings on lad[3:0] from the host. single, demand, verify, and increment modes are supported on the lpc interface. channels 0?3 are 8 bit channels. channels 5?7 are 16-bit channels. channel 4 is reserved as a generic bus master request. 5.8.1 asserting dma requests peripherals that need dma service encode their requested channel number on the ldrq# signal. to simplify the protocol, each peripheral on the lpc i/f has its own dedicated ldrq# signal (they may not be shared between two separate peripherals). the intel ? 631xesb/632xesb i/o controller hub has two ldrq# inputs, allowing at least two devices to support dma or bus mastering. ldrq# is synchronous with lclk (pci clock). as shown in figure 5-16 , the peripheral uses the following serial encoding sequence: ? peripheral starts the sequence by asserting ldrq# low (start bit). ldrq# is high during idle conditions. ? the next three bits contain the encoded dma channel number (msb first). ? the next bit (act) indicates whether the request for the indicated dma channel is active or inactive. the act bit is 1 (high) to indicate if it is active and 0 (low) if it is inactive. the case where act is low is rare, and is used only to indicate that a previous request for that channel is being abandoned. ? after the active/inactive indication, the ldrq# signal must go high for at least 1 clock. after that one clock, ldrq# signal can be brought low to the next encoding sequence. if another dma channel also needs to request a transfer, another sequence can be sent on ldrq#. for example, if an encoded request is sent for channel 2, and then channel 3 needs a transfer before the cycle for channel 2 is run on the interface, the peripheral can send the encoded request for channel 3. this allows multiple dma agents behind an i/o device to request use of the lpc interface, and the i/o device does not need to self- arbitrate before sending the message. 5.8.2 abandoning dma requests dma requests can be deasserted in two fashions: on error conditions by sending an ldrq# message with the ?act? bit set to 0, or normally through a sync field during the dma transfer. this section describes boundary conditions where the dma request needs to be removed prior to a data transfer. figure 5-16. dma request assertion through ldrq#
intel ? 631xesb/632xesb i/o controller hub datasheet 171 functional description there may be some special cases where the peripheral desires to abandon a dma transfer. the most likely case of this occurring is due to a floppy disk controller which has overrun or underrun its fifo, or software stopping a device prematurely. in these cases, the peripheral wishes to stop further dma activity. it may do so by sending an ldrq# message with the act bit as 0. however, since the dma request was seen by the intel ? 631xesb/632xesb i/o controller hub, there is no guarantee that the cycle has not been granted and will shortly run on lpc. therefore, peripherals must take into account that a dma cycle may still occur. the peripheral can choose not to respond to this cycle, in which case the host will abort it, or it can choose to complete the cycle normally with any random data. this method of dma deassertion should be prevented whenever possible, to limit boundary conditions both on the intel ? 631xesb/632xesb i/o controller hub and the peripheral. 5.8.3 general flow of dma transfers arbitration for dma channels is performed through the 8237 within the host. once the host has won arbitration on behalf of a dma channel assigned to lpc, it asserts lframe# on the lpc i/f and begins the dma transfer. the general flow for a basic dma transfer is as follows: 1. intel ? 631xesb/632xesb i/o controller hub starts transfer by asserting 0000b on lad[3:0] with lframe# asserted. 2. intel ? 631xesb/632xesb i/o controller hub asserts ?cycle type? of dma, direction based on dma transfer direction. 3. intel ? 631xesb/632xesb i/o controller hub asserts channel number and, if applicable, terminal count. 4. intel ? 631xesb/632xesb i/o controller hub indicates the size of the transfer: 8 or 16 bits. 5. if a dma read? ?the intel ? 631xesb/632xesb i/o controller hub drives the first 8 bits of data and turns the bus around. ? the peripheral acknowledges the data with a valid sync. ? if a 16-bit transfer, the process is repeated for the next 8 bits. 6. if a dma write? ?the intel ? 631xesb/632xesb i/o controller hub turns the bus around and waits for data. ? the peripheral indicates data ready through sync and transfers the first byte. ? if a 16-bit transfer, the peripheral indicates data ready and transfers the next byte. 7. the peripheral turns around the bus. 5.8.4 terminal count terminal count is communicated through lad[3] on the same clock that dma channel is communicated on lad[2:0]. this field is the channel field. terminal count indicates the last byte of transfer, based upon the size of the transfer.
172 intel ? 631xesb/632xesb i/o controller hub datasheet functional description for example, on an 8-bit transfer size (size field is 00b), if the tc bit is set, then this is the last byte. on a 16-bit transfer (size field is 01b), if the tc bit is set, then the second byte is the last byte. the peripheral, therefore, must internalize the tc bit when the channel field is communicated, and signal tc only when the last byte of that transfer size has been transferred. 5.8.5 verify mode verify mode is supported on the lpc interface. a verify transfer to the peripheral is similar to a dma write, where the peripheral is transferring data to main memory. the indication from the host is the same as a dm a write, so the peripheral will be driving data onto the lpc interface. however, the host will not transfer this data into main memory. 5.8.6 dma request de-assertion an end of transfer is communicated to the intel ? 631xesb/632xesb i/o controller hub through a special sync field sent by the peripheral. an lpc device must not attempt to signal the end of a transfer by deasserting ldreq#. if a dma transfer is several bytes (for example, a transfer from a demand mode device) the intel ? 631xesb/632xesb i/o controller hub needs to know when to deassert the dma request based on the data currently being transferred. the dma agent uses a sync encoding on each byte of data being transferred, which indicates to the intel ? 631xesb/632xesb i/o controller hub whether this is the last byte of transfer or if more bytes are requested. to indicate the last byte of transfer, the peripheral uses a sync value of 0000b (ready with no error), or 1010b (ready with error). these encodings tell the intel ? 631xesb/632xesb i/o controller hub that this is the last piece of data transferred on a dma read (intel ? 631xesb/632xesb i/o controller hub to peripheral), or the byte that follows is the last piece of data transferred on a dma write (peripheral to intel ? 631xesb/632xesb i/o controller hub). when the intel ? 631xesb/632xesb i/o controller hub sees one of these two encodings, it ends the dma transfer after this byte and deasserts the dma request to the 8237. therefore, if the intel ? 631xesb/632xesb i/o controller hub indicated a 16- bit transfer, the peripheral can end the transfer after one byte by indicating a sync value of 0000b or 1010b. the intel ? 631xesb/632xesb i/o controller hub does not attempt to transfer the second byte, and deasserts the dma request internally. if the peripheral indicates a 0000b or 1010b sync pattern on the last byte of the indicated size, then the intel ? 631xesb/632xesb i/o controller hub only deasserts the dma request to the 8237 since it does not need to end the transfer. if the peripheral wishes to keep the dma request active, then it uses a sync value of 1001b (ready plus more data). this tells the 8237 that more data bytes are requested after the current byte has been transferred, so the intel ? 631xesb/632xesb i/o controller hub keeps the dma request active to the 8237. therefore, on an 8-bit transfer size, if the peripheral indicates a sync value of 1001b to the intel ? 631xesb/ 632xesb i/o controller hub, the data will be transferred and the dma request will remain active to the 8237. at a later time, the intel ? 631xesb/632xesb i/o controller hub will then come back with another start ? cyctype ? channel ? size and so forth. combination to initiate another transfer to the peripheral. the peripheral must not assume that the next start indication from the intel ? 631xesb/632xesb i/o controller hub is another grant to the peripheral if it had indicated a sync value of 1001b. on a single mode dma device, the 8237 will re-
intel ? 631xesb/632xesb i/o controller hub datasheet 173 functional description arbitrate after every transfer. only demand mode dma devices can be guaranteed that they will receive the next start indication from the intel ? 631xesb/632xesb i/o controller hub. note: indicating a 0000b or 1010b encoding on the sync field of an odd byte of a 16-bit channel (first byte of a 16 bit transfer) is an error condition. note: the host stops the transfer on the lpc bus as indicated, fills the upper byte with random data on dma writes (peripheral to memory), and indicates to the 8237 that the dma transfer occurred, incrementing the 8237?s address and decrementing its byte count. 5.8.7 sync field / ldrq# rules since dma transfers on lpc are requested through an ldrq# assertion message, and are ended through a sync field during the dma transfer, the peripheral must obey the following rule when initiating back-to-back transfers from a dma channel. the peripheral must not assert another message for eight lclks after a deassertion is indicated through the sync field. this is needed to allow the 8237, that typically runs off a much slower internal clock, to see a message deasserted before it is re-asserted so it can arbitrate to the next agent. under default operation, the host performs only 8-bit transfers on 8-bit channels and 16-bit transfers on 16-bit channels. the method by which this communication between host and peripheral through system bios is performed is beyond the scope of this specification. since the lpc host and lpc peripheral are motherboard devices, no ?plug-n-play? registry is required. the peripheral must not assume that the host is able to perform transfer sizes that are larger than the size allowed for the dma channel, and be willing to accept a size field that is smaller than what it may currently have buffered. to that end, it is recommended that future devices that may appear on the lpc bus, that require higher bandwidth than 8-bit or 16-bit dma allow, do so with a bus mastering interface and not rely on the 8237. 5.9 8254 timers (d31:f0) the intel ? 631xesb/632xesb i/o controller hub contains three counters that have fixed uses. all registers and functions associated with the 8254 timers are in the core well. the 8254 unit is clocked by a 14.31818 mhz clock. counter 0, system timer this counter functions as the system timer by controlling the state of irq0 and is typically programmed for mode 3 operation. the counter produces a square wave with a period equal to the product of the counter period (838 ns) and the initial count value. the counter loads the initial count value 1 counter period after software writes the count value to the counter i/o address. the counter initially asserts irq0 and decrements the count value by two each counter period. the counter negates irq0 when the count value reaches 0. it then reloads the initial count value and again decrements the initial count value by two each counter period. the counter then asserts irq0 when the count value reaches 0, reloads the initial count value, and repeats the cycle, alternately asserting and negating irq0.
174 intel ? 631xesb/632xesb i/o controller hub datasheet functional description counter 1, refresh request signal this counter provides the refresh request signal and is typically programmed for mode 2 operation and impacts only the period of the ref_toggle bit in port 61. the initial count value is loaded one counter period after being written to the counter i/o address. the ref_toggle bit will have a square wave behavior (alternate between 0 and 1) and will toggle at a rate based on the value in the counter. programming the counter to anything other than mode 2 will result in undefined behavior for the ref_toggle bit. counter 2, speaker tone this counter provides the speaker tone and is typically programmed for mode 3 operation. the counter provides a speaker frequency equal to the counter clock frequency (1.193 mhz) divided by the initial count value. the speaker must be enabled by a write to port 061h. 5.9.1 timer programming the counter/timers are programmed in the following fashion: 1. write a control word to select a counter. 2. write an initial count for that counter. 3. load the least and/or most significant bytes (per control word bits 5:4) of the 16- bit counter. 4. repeat with other counters. only two conventions need to be observed when programming the counters. first, for each counter, the control word must be written before the initial count is written. second, the initial count must follow the count format specified in the control word (least significant byte only, most significant byte only, or least significant byte and then most significant byte). a new initial count may be written to a counter at any time without affecting the counter's programmed mode. counting is affected as described in the mode definitions. the new count must follow the programmed count format. if a counter is programmed to read/write two-byte counts, a program must not transfer control between writing the first and second byte to another routine which also writes into that same counter. otherwise, the counter will be loaded with an incorrect count. the control word register at port 43h controls the operation of all three counters. several commands are available: ? control word command. specifies which counter to read or write, the operating mode, and the count format (binary or bcd). ? counter latch command. latches the current count so that it can be read by the system. the countdown process continues. ? read back command. reads the count value, programmed mode, the current state of the out pins, and the state of the null count flag of the selected counter. ta b l e 5 - 3 0 lists the six operating modes for the interval counters.
intel ? 631xesb/632xesb i/o controller hub datasheet 175 functional description 5.9.2 reading from the interval timer it is often desirable to read the value of a counter without disturbing the count in progress. there are three methods for reading the counters: a simple read operation, counter latch command, and the read-back command. each is explained below. with the simple read and counter latch command methods, the count must be read according to the programmed format; specifically, if the counter is programmed for two byte counts, two bytes must be read. the two bytes do not have to be read one right after the other. read, write, or programming operations for other counters may be inserted between them. 5.9.2.1 simple read the first method is to perform a simple read operation. the counter is selected through port 40h (counter 0), 41h (counter 1), or 42h (counter 2). note: performing a direct read from the counter does not return a determinate value, because the counting process is asynchronous to read operations. however, in the case of counter 2, the count can be stopped by writing to the gate bit in port 61h. 5.9.2.2 counter latch command the counter latch command, written to port 43h, latches the count of a specific counter at the time the command is received. this command is used to ensure that the count read from the counter is accurate, particularly when reading a two-byte count. the count value is then read from each counter?s count register as was programmed by the control register. the count is held in the latch until it is read or the counter is reprogrammed. the count is then unlatched. this allows reading the contents of the counters on the fly without affecting counting in progress. multiple counter latch commands may be used to latch more than one counter. counter latch commands do not affect the programmed mode of the counter in any way. if a counter is latched and then, some time later, latched again before the count is read, the second counter latch command is ignored. the count read is the count at the time the first counter latch command was issued. table 5-30. counter operating modes mode function description 0 out signal on end of count (=0) output is 0. when count goes to 0, output goes to 1 and stays at 1 until counter is reprogrammed. 1 hardware retriggerable one-shot output is 0. when count goes to 0, output goes to 1 for one clock time. 2 rate generator (divide by n counter) output is 1. output goes to 0 for one clock time, then back to 1 and counter is reloaded. 3 square wave output output is 1. output goes to 0 when counter rolls over, and counter is reloaded. output goes to 1 when counter rolls over, and counter is reloaded, and so forth. 4 software triggered strobe output is 1. output goes to 0 when count expires for one clock time. 5 hardware triggered strobe output is 1. output goes to 0 when count expires for one clock time.
176 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.9.2.3 read back command the read back command, written to port 43h, latches the count value, programmed mode, and current states of the out pin and null count flag of the selected counter or counters. the value of the counter and its status may then be read by i/o access to the counter address. the read back command may be used to latch multiple counter outputs at one time. this single command is functionally equivalent to several counter latch commands, one for each counter latched. each counter's latched count is held until it is read or reprogrammed. once read, a counter is unlatched. the other counters remain latched until they are read. if multiple count read back commands are issued to the same counter without reading the count, all but the first are ignored. the read back command may additionally be used to latch status information of selected counters. the status of a counter is accessed by a read from that counter's i/ o port address. if multiple counter status latch operations are performed without reading status, all but the first are ignored. both count and status of the selected counters may be latched simultaneously. this is functionally the same as issuing two consecutive, separate read back commands. if multiple count and/or status read back commands are issued to the same counters without any intervening reads, all but the first are ignored. if both count and status of a counter are latched, the first read operation from that counter returns the latched status, regardless of which was latched first. the next one or two reads, depending on whether the counter is programmed for one or two type counts, returns the latched count. subsequent reads return unlatched count. 5.10 8259 interrupt controllers (pic) (d31:f0) the intel ? 631xesb/632xesb i/o controller hub incorporates the functionality of two 8259 interrupt controllers that provide system interrupts for the isa compatible interrupts. these interrupts are: system timer, keyboard controller, serial ports, parallel ports, floppy disk, ide, mouse, and dma channels. in addition, this interrupt controller can support the pci based interrupts, by mapping the pci interrupt onto the compatible isa interrupt line. each 8259 core supports eight interrupts, numbered 0 ? 7. ta b l e 5 - 3 1 shows how the cores are connected. . table 5-31. interrupt controller core connections (sheet 1 of 2) 8259 8259 input typical interrupt source connected pin / function master 0 internal internal timer / counter 0 output / hpet #0 1 keyboard irq1 via serirq 2 internal slave controller intr output 3 serial port a irq3 via serirq, pirq# 4 serial port b irq4 via serirq, pirq# 5 parallel port / generic irq5 via serirq, pirq# 6 floppy disk irq6 via serirq, pirq# 7 parallel port / generic irq7 via serirq, pirq#
intel ? 631xesb/632xesb i/o controller hub datasheet 177 functional description the intel ? 631xesb/632xesb i/o controller hub cascades the slave controller onto the master controller through master controller interrupt input 2. this means there are only 15 possible interrupts for the intel ? 631xesb/632xesb i/o controller hub pic. interrupts can individually be programmed to be edge or level, except for irq0, irq2, irq8#, and irq13. note: active-low interrupt sources (for example, the pirq#s) are inverted inside the intel ? 631xesb/632xesb i/o controller hub. in the following descriptions of the 8259s, the interrupt levels are in reference to the signals at the internal interface of the 8259s, after the required inversions have occurred. therefore, the term ?high? indicates ?active,? which means ?low? on an originating pirq#. 5.10.1 interrupt handling 5.10.1.1 generating interrupts the pic interrupt sequence involves three bits, from the irr, isr, and imr, for each interrupt level. these bits are used to determine the interrupt vector returned, and status of any other pending interrupts. ta b l e 5 - 3 2 defines the irr, isr, and imr. 5.10.1.2 acknowledging interrupts the processor generates an interrupt acknowledge cycle that is translated by the host bridge into a pci interrupt acknowledge cycle to the intel ? 631xesb/632xesb i/o controller hub. the pic translates this command into two internal inta# pulses expected by the 8259 cores. the pic uses the first internal inta# pulse to freeze the state of the interrupts for priority resolution. on the second inta# pulse, the master or slave 0 internal real time clock internal rtc / hpet #1 1 generic irq9 via serirq, sci, tco, or pirq# 2 generic irq10 via serirq, sci, tco, or pirq# 3 generic irq11 via serirq, sci, tco, or pirq# 4 ps/2 mouse irq12 via serirq, sci, tco, or pirq# 5 internal state machine output based on processor ferr# assertion. may optionally be used for sci or tco interrupt if ferr# not needed. 6 ide cable, sata ideirq (legacy mode), sata primary (legacy mode), or via serirq or pirq# 7 satareserved sata secondary (legacy mode) or via serirq or pirq#reserved table 5-31. interrupt controller core connections (sheet 2 of 2) 8259 8259 input typical interrupt source connected pin / function table 5-32. interrupt status registers bit description irr interrupt request register. this bit is set on a low to high transition of the interrupt line in edge mode, and by an active high level in level mode. this bit is set whether or not the interrupt is masked. however, a masked interrupt will not generate intr. isr interrupt service register. this bit is set, and the corresponding irr bit cleared, when an interrupt acknowledge cycle is seen, and the vector returned is for that interrupt. imr interrupt mask register. this bit determines whether an interrupt is masked. masked interrupts will not generate intr.
178 intel ? 631xesb/632xesb i/o controller hub datasheet functional description slave sends the interrupt vector to the processor with the acknowledged interrupt code. this code is based upon bits [7:3] of the corresponding icw2 register, combined with three bits representing the interrupt within that controller. 5.10.1.3 hardware/software interrupt sequence 1. one or more of the interrupt request lines (irq) are raised high in edge mode, or seen high in level mode, setting the corresponding irr bit. 2. the pic sends intr active to the processor if an asserted interrupt is not masked. 3. the processor acknowledges the intr and responds with an interrupt acknowledge cycle. the cycle is translated into a pci interrupt acknowledge cycle by the host bridge. this command is broa dcast over pci by the intel ? 631xesb/632xesb i/o controller hub. 4. upon observing its own interrupt acknowledge cycle on pci, the intel ? 631xesb/ 632xesb i/o controller hub converts it into the two cycles that the internal 8259 pair can respond to. each cycle appears as an interrupt acknowledge pulse on the internal inta# pin of the cascaded interrupt controllers. 5. upon receiving the first internally generated inta# pulse, the highest priority isr bit is set and the corresponding irr bit is reset. on the trailing edge of the first pulse, a slave identification code is broadcast by the master to the slave on a private, internal three bit wide bus. the slave controller uses these bits to determine if it must respond with an interrupt vector during the second inta# pulse. 6. upon receiving the second internally generated inta# pulse, the pic returns the interrupt vector. if no interrupt request is present because the request was too short in duration, the pic returns vector 7 from the master controller. 7. this completes the interrupt cycle. in aeoi mode the isr bit is reset at the end of the second inta# pulse. otherwise, the isr bit remains set until an appropriate eoi command is issued at the end of the interrupt subroutine. 5.10.2 initialization command words (icwx) before operation can begin, each 8259 must be initialized. in the intel ? 631xesb/ 632xesb i/o controller hub, this is a four byte sequence. the four initialization command words are referred to by thei r acronyms: icw1, icw2, icw3, and icw4. the base address for each 8259 initialization command word is a fixed location in the i/ o memory space: 20h for the master controller, and a0h for the slave controller. table 5-33. content of interrupt vector byte master, slave interrupt bits [7:3] bits [2:0] irq7,15 icw2[7:3] 111 irq6,14 110 irq5,13 101 irq4,12 100 irq3,11 011 irq2,10 010 irq1,9 001 irq0,8 000
intel ? 631xesb/632xesb i/o controller hub datasheet 179 functional description 5.10.2.1 icw1 an i/o write to the master or slave controller base address with data bit 4 equal to 1 is interpreted as a write to icw1. upon sensing this write, the intel ? 631xesb/632xesb i/o controller hub pic expects three more byte writes to 21h for the master controller, or a1h for the slave controller, to complete the icw sequence. a write to icw1 starts the initialization sequence during which the following automatically occur: 1. following initialization, an interrupt request (irq) input must make a low-to-high transition to generate an interrupt. 2. the interrupt mask register is cleared. 3. irq7 input is assigned priority 7. 4. the slave mode address is set to 7. 5. special mask mode is cleared and status read is set to irr. 5.10.2.2 icw2 the second write in the sequence (icw2) is programmed to provide bits [7:3] of the interrupt vector that will be released during an interrupt acknowledge. a different base is selected for each interrupt controller. 5.10.2.3 icw3 the third write in the sequence (icw3) has a different meaning for each controller. ? for the master controller, icw3 is used to indicate which irq input line is used to cascade the slave controller. within the intel ? 631xesb/632xesb i/o controller hub, irq2 is used. therefore, bit 2 of icw3 on the master controller is set to a 1, and the other bits are set to 0s. ? for the slave controller, icw3 is the slave identification code used during an interrupt acknowledge cycle. on interrupt acknowledge cycles, the master controller broadcasts a code to the slave controller if the cascaded interrupt won arbitration on the master controller. the slave controller compares this identification code to the value stored in its icw3, and if it matches, the slave controller assumes responsibility for broadcasting the interrupt vector. 5.10.2.4 icw4 the final write in the sequence (icw4) must be programmed for both controllers. at the very least, bit 0 must be set to a 1 to indicate that the controllers are operating in an intel architecture-based system. 5.10.3 operation command words (ocw) these command words reprogram the interrupt controller to operate in various interrupt modes. ? ocw1 masks and unmasks interrupt lines. ? ocw2 controls the rotation of interrupt priorities when in rotating priority mode, and controls the eoi function. ? ocw3 is sets up isr/irr reads, enables/disables the special mask mode (smm), and enables/disables polled interrupt mode.
180 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.10.4 modes of operation 5.10.4.1 fully nested mode in this mode, interrupt requests are ordered in priority from 0 through 7, with 0 being the highest. when an interrupt is acknowledged, the highest priority request is determined and its vector placed on the bus. additionally, the isr for the interrupt is set. this isr bit remains set until: the processor issues an eoi command immediately before returning from the service routine; or if in aeoi mode, on the trailing edge of the second inta#. while the isr bit is set, all further interrupts of the same or lower priority are inhibited, while higher levels generate another interrupt. interrupt priorities can be changed in the rotating priority mode. 5.10.4.2 special fully-nested mode this mode is used in the case of a system where cascading is used, and the priority has to be conserved within each slave. in this case, the special fully-nested mode is programmed to the master controller. this mode is similar to the fully-nested mode with the following exceptions: ? when an interrupt request from a certain slave is in service, this slave is not locked out from the master's priority logic and further interrupt requests from higher priority interrupts within the slave are recognized by the master and initiate interrupts to the processor. in the normal-nested mode, a slave is masked out when its request is in service. ? when exiting the interrupt service routine, software has to check whether the interrupt serviced was the only one from that slave. this is done by sending a non- specific eoi command to the slave and then reading its isr. if it is 0, a non- specific eoi can also be sent to the master. 5.10.4.3 automatic rotation mode (equal priority devices) in some applications, there are a number of interrupting devices of equal priority. automatic rotation mode provides for a sequential 8-way rotation. in this mode, a device receives the lowest priority after being serviced. in the worst case, a device requesting an interrupt has to wait until each of seven other devices are serviced at most once. there are two ways to accomplish automatic rotation using ocw2; the rotation on non-specific eoi command (r=1, sl=0, eoi=1) and the rotate in automatic eoi mode which is set by (r=1, sl=0, eoi=0). 5.10.4.4 specific rotation mode (specific priority) software can change interrupt priorities by programming the bottom priority. for example, if irq5 is programmed as the bottom priority device, then irq6 is the highest priority device. the set priority command is issued in ocw2 to accomplish this, where: r=1, sl=1, and lo?l2 is the binary priority level code of the bottom priority device. in this mode, internal status is updated by software control during ocw2. however, it is independent of the eoi command. priority changes can be executed during an eoi command by using the rotate on specific eoi command in ocw2 (r=1, sl=1, eoi=1 and lo?l2=irq level to receive bottom priority.
intel ? 631xesb/632xesb i/o controller hub datasheet 181 functional description 5.10.4.5 poll mode poll mode can be used to conserve space in the interrupt vector table. multiple interrupts that can be serviced by one interrupt service routine do not need separate vectors if the service routine uses the poll command. poll mode can also be used to expand the number of interrupts. the polling interrupt service routine can call the appropriate service routine, instead of providing the interrupt vectors in the vector table. in this mode, the intr output is not used and the microprocessor internal interrupt enable flip-flop is reset, disabling its interrupt input. service to devices is achieved by software using a poll command. the poll command is issued by setting p=1 in ocw3. the pic treats its next i/o read as an interrupt acknowledge, sets the appropriate isr bit if there is a request, and reads the priority level. interrupts are frozen from the ocw3 write to the i/o read. the byte returned during the i/o read contains a 1 in bit 7 if there is an interrupt, and the binary code of the highest priority level in bits 2:0. 5.10.4.6 cascade mode the pic in intel ? 631xesb/632xesb i/o controller hub has one master 8259 and one slave 8259 cascaded onto the master through irq2. this configuration can handle up to 15 separate priority levels. the master controls the slaves through a three bit internal bus. in the intel ? 631xesb/632xesb i/o controller hub, when the master drives 010b on this bus, the slave controller takes responsibility for returning the interrupt vector. an eoi command must be issued twice: once for the master and once for the slave. 5.10.4.7 edge and level triggered mode in isa systems this mode is programmed using bit 3 in icw1, which sets level or edge for the entire controller. in the intel ? 631xesb/632xesb i/o controller hub, this bit is disabled and a new register for edge and le vel triggered mode selection, per interrupt input, is included. this is the edge/level control registers elcr1 and elcr2. if an elcr bit is 0, an interrupt request will be recognized by a low-to-high transition on the corresponding irq input. the irq input can remain high without generating another interrupt. if an elcr bit is 1, an interrupt request will be recognized by a high level on the corresponding irq input and there is no need for an edge detection. the interrupt request must be removed before the eoi command is issued to prevent a second interrupt from occurring. in both the edge and level triggered modes, the irq inputs must remain active until after the falling edge of the first internal inta#. if the irq input goes inactive before this time, a default irq7 vector is returned. 5.10.4.8 end of interrupt (eoi) operations an eoi can occur in one of two fashions: by a command word write issued to the pic before returning from a service routine, the eoi command; or automatically when aeoi bit in icw4 is set to 1. 5.10.4.9 normal end of interrupt in normal eoi, software writes an eoi command before leaving the interrupt service routine to mark the interrupt as completed. there are two forms of eoi commands: specific and non-specific. when a non-specific eoi command is issued, the pic clears the highest isr bit of those that are set to 1. non-specific eoi is the normal mode of
182 intel ? 631xesb/632xesb i/o controller hub datasheet functional description operation of the pic within the intel ? 631xesb/632xesb i/o controller hub, as the interrupt being serviced currently is the interrupt entered with the interrupt acknowledge. when the pic is operated in modes that preserve the fully nested structure, software can determine which isr bit to clear by issuing a specific eoi. an isr bit that is masked is not cleared by a non-specific eoi if the pic is in the special mask mode. an eoi command must be issued for both the master and slave controller. 5.10.4.10 automatic end of interrupt mode in this mode, the pic automatically performs a non-specific eoi operation at the trailing edge of the last interrupt acknowledge pulse. from a system standpoint, this mode should be used only when a nested multi-level interrupt structure is not required within a single pic. the aeoi mode can be used only in the master controller and not the slave controller. 5.10.5 masking interrupts 5.10.5.1 masking on an individual interrupt request each interrupt request can be masked individually by the interrupt mask register (imr). this register is programmed through ocw1. each bit in the imr masks one interrupt channel. masking irq2 on the master controller masks all requests for service from the slave controller. 5.10.5.2 special mask mode some applications may require an interrupt service routine to dynamically alter the system priority structure during its execution under software control. for example, the routine may wish to inhibit lower priority requests for a portion of its execution but enable some of them for another portion. the special mask mode enables all interrupts not masked by a bit set in the mask register. normally, when an interrupt service routine acknowledges an interrupt without issuing an eoi to clear the isr bit, the interrupt controller inhibits all lower priority requests. in the special mask mode, any interrupts may be selectively enabled by loading the mask register with the appropriate pattern. the special mask mode is set by ocw3 where: ssmm=1, smm=1, and cleared where ssmm=1, smm=0. 5.10.6 steering pci interrupts the intel ? 631xesb/632xesb i/o controller hub can be programmed to allow pirqa#-pirqh# to be internally routed to interrupts 3?7, 9?12, 14 or 15. the assignment is programmable through the through the pirqx route control registers, located at 60?63h and 68?6bh in device 31:function 0. one or more pirqx# lines can be routed to the same irqx input. if interrupt steering is not required, the route registers can be programmed to disable steering. the pirqx# lines are defined as active low, level sensitive to allow multiple interrupts on a pci board to share a single line across the connector. when a pirqx# is routed to specified irq line, software must change the irq's corresponding elcr bit to level sensitive mode. the intel ? 631xesb/632xesb i/o controller hub internally inverts the pirqx# line to send an active high level to the pic. when a pci interrupt is routed onto the pic, the selected irq can no longer be used by an acting high device (through serirq). however, active low interrupts can share their interrupt with pci interrupts.
intel ? 631xesb/632xesb i/o controller hub datasheet 183 functional description internal sources of the pirqs, including sci and tco interrupts, cause the external pirq to be asserted. the intel ? 631xesb/632xesb i/o controller hub receives the pirq input, like all of the other external sources, and routes it accordingly. 5.11 advanced programmable interrupt controller (apic) (d31:f0) in addition to the standard isa-compatible pic described in the previous chapter, the intel ? 631xesb/632xesb i/o controller hub incorporates two apics (diagram shown in figure 5-6 ), one i/oxapic (bm:d0:f1) resides in bus m, for information, refer to section 5.1.4 ). while the standard interrupt controller is intended for use in a uniprocessor system, apic can be used in either a uniprocessor or multiprocessor system. 5.11.1 interrupt handling the i/o apic handles interrupts very differently than the 8259. briefly, these differences are: ? method of interrupt transmission. the i/o apic transmits interrupts through memory writes on the normal datapath to the processor, and interrupts are handled without the need for the processor to run an interrupt acknowledge cycle. ? interrupt priority. the priority of interrupts in the i/o apic is independent of the interrupt number. for example, interrupt 10 can be given a higher priority than interrupt 3. ? more interrupts. the i/o apic in the intel ? 631xesb/632xesb i/o controller hub supports a total of 24 interrupts. ? multiple interrupt controllers. the i/o apic architecture allows for multiple i/o apic devices in the system with their own interrupt vectors. 5.11.2 interrupt mapping the i/o apic within the intel ? 631xesb/632xesb i/o controller hub supports 24 apic interrupts. each interrupt has its own unique vector assigned by software. the interrupt vectors are mapped as follows, and match ?config 6? of the multiprocessor specification. table 5-34. apic interrupt mapping (sheet 1 of 2) irq # via serirq direct from pin via pci message internal modules 0 no no no cascade from 8259 #1 1yes no yes 2 no no no 8254 counter 0, hpet #0 (legacy mode) 3yes no yes 4yes no yes 5yes no yes 6yes no yes 7yes no yes 8no no nortc, hpet #1 (legacy mode) 9yes no yesoption for sci, tco
184 intel ? 631xesb/632xesb i/o controller hub datasheet functional description notes: 1. ideirq can be driven directly from the pin only when in legacy ide mode. 2. when programming the polarity of internal interrupt sources on the apic, interrupts 0 through 15 receive active-high internal interrupt sources, while interrupt s 16 through 23 receive active-low internal interrupt sources. 3. if irq 11 is used for hpet #2, software should ensure irq 11 is not shared with any other devices to guarantee the proper operation of hpet #2. intel ? 631xesb/632xesb i/o controller hub hardware does not prevent sharing of irq 11. 4. pci message interrupts are not prevented by hardware in these cases. however, the system must not program these interrupts as edge-triggered (as required for pci message interrupts) because the internal and external pirqs on these inputs must be programmed in level-triggered modes. 5.11.3 pci/pci express* message-based interrupts when external devices connected by way of pci/pci express wish to generate an interrupt, they will send the message defined in the pci express specification for generating inta# - intd#. these will be translated internal assertions/de-assertions of inta# - intd#. 5.11.4 system bus interrupt delivery for processors that support system bus interrupt delivery, the intel ? 631xesb/ 632xesb i/o controller hub requires that the i/o apic deliver interrupt messages to the processor in a parallel manner, rather than using the i/o apic serial scheme. this is done by the intel ? 631xesb/632xesb i/o controller hub writing (by way of esi) to a memory location that is snooped by the processor(s). the processor(s) snoop the cycle to know which interrupt goes active. the following sequence is used: 1. when the intel ? 631xesb/632xesb i/o controller hub detects an interrupt event (active edge for edge-triggered mode or a change for level-triggered mode), it sets or resets the internal irr bit associated with that interrupt. 10 yes no yes option for sci, tco 11 yes no yes hpet #2, option for sci, tco 12 yes no yes 13 no no no ferr# logic 14 yes yes 1 yes ideirq (legacy mode), sata primary (legacy mode) 15 yes yes yes sata secondary (legacy mode) 16 pirqa# pirqa# no 4 usb uhci controller #1, usb uhci controller #4 17 pirqb# pirqb# no 4 ac?97 audio, modem, option for smbus 18 pirqc# pirqc# no 4 usb uhci controller #3, storage (ide/sata) native mode 19 pirqd# pirqd# no 4 usb uhci controller #2 20 n/a pirqe# no 4 lan, option for sci, tco, hpet #0,1,2 21 n/a pirqf# yes option for sci, tco, hpet #0,1,2 22 n/a pirqg# yes option for sci, tco, hpet #0,1,2 23 n/a pirqh# no 4 usb ehci controller, option for sci, tco, hpet #0,1,2 table 5-34. apic interrupt mapping (sheet 2 of 2) irq # via serirq direct from pin via pci message internal modules
intel ? 631xesb/632xesb i/o controller hub datasheet 185 functional description 2. internally, the intel ? 631xesb/632xesb i/o controller hub requests to use the bus in a way that automatically flushes upstream buffers. this can be internally implemented similar to a dma device request. 3. the intel ? 631xesb/632xesb i/o controller hub then delivers the message by performing a write cycle to the appropriate address with the appropriate data. the address and data formats are described below in section 5.11.4.4 . note: system bus interrupt delivery compatibility with processor clock control depends on the processor, not the intel ? 631xesb/632xesb i/o controller hub. 5.11.4.1 edge-triggered operation in this case, the ?assert message? is sent when there is an inactive-to-active edge on the interrupt. 5.11.4.2 level-triggered operation in this case, the ?assert message? is sent when there is an inactive-to-active edge on the interrupt. if after the eoi the interrupt is still active, then another ?assert message? is sent to indicate that the interrupt is still active. 5.11.4.3 registers associated with system bus interrupt delivery capabilities indication: the capability to support system bus interrupt delivery is indicated by way of acpi configuration techniques. this involves the bios creating a data structure that gets reported to the acpi configuration software. 5.11.4.4 interrupt message format the intel ? 631xesb/632xesb i/o controller hub writes the message to pci (and to the host controller) as a 32-bit memory write cycle. it uses the formats shown in ta bl e 5 - 3 5 and ta bl e 5 - 3 6 for the address and data. the local apic (in the processor) has a delivery mode option to interpret front side bus messages as a smi in which case the processor treats the incoming interrupt as a smi instead of as an interrupt. this does not mean that the intel ? 631xesb/632xesb i/o controller hub has any way to have a smi source from intel ? 631xesb/632xesb i/o controller hub power management logic cause the i/o apic to send an smi message (there is no way to do this). the intel ? 631xesb/632xesb i/o controller hub?s i/o apic can send interrupts only, due to interrupts which do not include smi, nmi or init. this means that in itanium architecture-based systems, system bus interrupt message format delivery modes 010 (smi/pmi), 100 (nmi), and 101 (init) as indicated in this section, must not be used and is not supported. only the hardware pin connection is supported by intel ? 631xesb/632xesb i/o controller hub. : table 5-35. interrupt message address format (sheet 1 of 2) bit description 31:20 will always be feeh. 19:12 destination id: this is the same as bits 63:56 of the i/o redirection table entry for the interrupt associated with this message. 11:4 extended destination id : this is the same as bits 55:48 of the i/o redirection table entry for the interrupt associated with this message.
186 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 3 redirection hint: this bit is used by the processor host bridge to allow the interrupt message to be redirected. 0 = the message will be delivered to the agent (processor) listed in bits 19:12. 1 = the message will be delivered to an agent with a lower interrupt priority. this can be derived from bits 10:8 in the data field (see below). the redirection hint bit will be a 1 if bits 10:8 in the delivery mode field associated with corresponding interrupt are encoded as 001 (lowest priority). otherwise, the redirection hint bit will be 0. 2 destination mode: this bit is used only when the redirection hint bit is set to 1. if the redirection hint bit and the destination mode bit are both set to 1, then the logical destination mode is used, and the redirection is limited to on ly those processors that are part of the logical group as based on the logical id. 1:0 will always be 00. table 5-36. interrupt message data format bit description 31:16 will always be 0000h. 15 trigger mode: 1 = level, 0 = edge. same as the corresponding bit in the i/o redirection table for that interrupt. 14 delivery status: 1 = assert, 0 = deassert. only assert message are sent, this bit is always 1. 13:12 will always be 00 11 destination mode: 1 = logical. 0 = physical. same as the corresponding bit in the i/o redirection table for that interrupt. 10:8 delivery mode: this is the same as the corresponding bits in the i/o redirection table for that interrupt. 000 = fixed 100 = nmi 001 = lowest priority 101 = init 010 = smi/pmi 110 = reserved 011 = reserved 111 = extint 7:0 vector: this is the same as the corresponding bits in the i/o redirection table for that interrupt. table 5-35. interrupt message address format (sheet 2 of 2) bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 187 functional description 5.12 serial interrupt (d31:f0) the intel ? 631xesb/632xesb i/o controller hub supports a serial irq scheme. this allows a single signal to be used to report interrupt requests. the signal used to transmit this information is shared between the host, the intel ? 631xesb/632xesb i/o controller hub, and all peripherals that support serial interrupts. the signal line, serirq, is synchronous to pci clock, and follows the sustained tri-state protocol that is used by all pci signals. this means that if a device has driven serirq low, it will first drive it high synchronous to pci clock and release it the following pci clock. the serial irq protocol defines this sustained tri-state signaling in the following fashion: ? s ? sample phase. signal driven low ? r ? recovery phase. signal driven high ? t ? turn-around phase. signal released the intel ? 631xesb/632xesb i/o controller hub supports a message for 21 serial interrupts. these represent the 15 isa interrupts (irq0?1, 2?15), the four pci interrupts, and the control signals smi# and iochk#. the serial irq protocol does not support the additional apic interrupts (20?23). note: when the ide controller is enabled or the sata controller is configured for legacy ide mode, irq14 and irq15 are not accessible to the interrupt controllers through the serial interrupt pin. 5.12.1 start frame the serial irq protocol has two modes of operation which affect the start frame. these two modes are: continuous, where the intel ? 631xesb/632xesb i/o controller hub is solely responsible for generating the start frame; and quiet, where a serial irq peripheral is responsible for beginning the start frame. the mode that must first be entered when enabling the serial irq protocol is continuous mode. in this mode, the intel ? 631xesb/632xesb i/o controller hub asserts the start frame. this start frame is 4, 6, or 8 pci clocks wide based upon the serial irq control register, bits 1:0 at 64h in device 31:function 0 configuration space. this is a polling mode. when the serial irq stream enters quiet mode (signaled in the stop frame), the serirq line remains inactive and pulled up between the stop and start frame until a peripheral drives the serirq signal low. the intel ? 631xesb/632xesb i/o controller hub senses the line low and continues to drive it low for the remainder of the start frame. since the first pci clock of the start frame was driven by the peripheral in this mode, the intel ? 631xesb/632xesb i/o controller hub drives the serirq line low for 1 pci clock less than in continuous mode. this mode of operation allows for a quiet, and therefore lower power, operation. 5.12.2 data frames once the start frame has been initiated, all of the serirq peripherals must start counting frames based on the rising edge of serirq. each of the irq/data frames has exactly 3 phases of 1 clock each: ? sample phase. during this phase, the serirq device drives serirq low if the corresponding interrupt signal is low. if the corresponding interrupt is high, then the serirq devices tri-state the serirq signal. the serirq line remains high due to pull-up resistors (there is no internal pull-up resistor on this signal, an external pull-up resistor is required). a low level during the irq0 ? 1 and irq2 ? 15 frames
188 intel ? 631xesb/632xesb i/o controller hub datasheet functional description indicates that an active-high isa interrupt is not being requested, but a low level during the pci int[a:d], smi#, and iochk# frame indicates that an active-low interrupt is being requested. ? recovery phase. during this phase, the device drives the serirq line high if in the sample phase it was driven low. if it was not driven in the sample phase, it is tri-stated in this phase. ? turn-around phase. the device tri-states the serirq line. 5.12.3 stop frame after all data frames, a stop frame is driven by the intel ? 631xesb/632xesb i/o controller hub. the serirq signal is driven low by the intel ? 631xesb/632xesb i/o controller hub for 2 or 3 pci clocks. the number of clocks is determined by the serirq configuration register. the number of clocks determines the next mode: 5.12.4 specific interrupts not supported by way of serirq there are three interrupts seen through the serial stream that are not supported by the intel ? 631xesb/632xesb i/o controller hub. these interrupts are generated internally, and are not sharable with other devices within the system. these interrupts are: ? irq0. heartbeat interrupt generated off of the internal 8254 counter 0. ? irq8#. rtc interrupt can be generated only internally. ? irq13. floating point error interrupt generated off of the processor assertion of ferr#. the intel ? 631xesb/632xesb i/o controller hub ignores the state of these interrupts in the serial stream, and does not adjust their level based on the level seen in the serial stream. 5.12.5 data frame format ta b l e 5 - 3 8 shows the format of the data frames. for the pci interrupts (a ? d), the output from the intel ? 631xesb/632xesb i/o controller hub is anded with the pci input signal. this way, the interrupt can be signaled by way of both the pci interrupt input signal and by way of the serirq signal (they are shared). table 5-37. stop frame explanation stop frame width next mode 2 pci clocks quiet mode. any serirq device may initiate a start frame 3 pci clocks continuous mode. only the host (intel ? 631xesb/632xesb i/o controller hub) may initiate a start frame table 5-38. data frame format (sheet 1 of 2) data frame # interrupt clocks past start frame comment 1 irq0 2 ignored. irq0 can be generated only by way of the internal 8524 2irq15 3 smi# 8 causes smi# if low. will set the serirq_smi_sts bit. 4irq311
intel ? 631xesb/632xesb i/o controller hub datasheet 189 functional description 5.13 real time clock (d31:f0) the real time clock (rtc) module provides a battery backed-up date and time keeping device with two banks of static ram with 128 bytes each, although the first bank has 114 bytes for general purpose usage. three interrupt features are available: time of day alarm with once a second to once a month range, periodic rates of 122 s to 500 ms, and end of update cycle notification. seconds, minutes, hours, days, day of week, month, and year are counted. daylight savings compensation is available. the hour is represented in twelve or twenty-four hour format, and data can be represented in bcd or binary format. the design is functionally compatible with the motorola ms146818b. the time keeping comes from a 32.768 khz oscillating source, which is divided to achieve an update every second. the lower 14 bytes on the lower ram block has very specific functions. the first ten are for time and date information. the next four (0ah to 0dh) are registers, which configure and report rtc functions. the time and calendar data should match the data mode (bcd or binary) and hour mode (12 or 24 hour) as selected in register b. it is up to the programmer to make sure that data stored in these locations is within the reasonable values ranges and represents a possible date and time. the exception to these ranges is to store a value of c0?ffh in the alarm bytes to indicate a don?t care situation. all alarm conditions must match to trigger an alarm flag, which could trigger an alarm interrupt if enabled. the set bit must be 1 while programming these locations to avoid clashes with an update cycle. access to time and date information is done through the ram locations. if a ram read from the ten time and date bytes is attempted during an update cycle, the value read do not necessarily represent the true contents of those locations. any ram writes under the same conditions are ignored. note: the leap year determination for adding a 29th day to february does not take into account the end-of-the-century exceptions. the logic simply assumes that all years divisible by 4 are leap years. according to the royal observatory greenwich, years that 5irq414 6irq517 7irq620 8irq723 9 irq8 26 ignored. irq8# can be generated internally only. 10 irq9 29 11 irq10 32 12 irq11 35 13 irq12 38 14 irq13 41 ignored. irq13 can be generated only from ferr# 15 irq14 44 not attached to pata or sata logic 16 irq15 47 not attached to pata or sata logic 17 iochck# 50 same as isa iochck# going active. 18 pci inta# 53 drive pirqa# 19 pci intb# 56 drive pirqb# 20 pci intc# 59 drive pirqc# 21 pci intd# 62 drive pirqd# table 5-38. data frame format (sheet 2 of 2) data frame # interrupt clocks past start frame comment
190 intel ? 631xesb/632xesb i/o controller hub datasheet functional description are divisible by 100 are typically not leap year s. in every fourth century (years divisible by 400, like 2000), the 100-year-exception is over-ridden and a leap-year occurs. note that the year 2100 will be the first time in which the current rtc implementation would incorrectly calculate the leap-year. the intel ? 631xesb/632xesb i/o controller hub does not implement month/year alarms. 5.13.1 update cycles an update cycle occurs once a second, if the set bit of register b is not asserted and the divide chain is properly configured. during this procedure, the stored time and date are incremented, overflow is checked, a matching alarm condition is checked, and the time and date are rewritten to the ram locations. the update cycle will start at least 488 s after the uip bit of register a is asserted, and the entire cycle does not take more than 1984 s to complete. the time and date ram locations (0 ? 9) are disconnected from the external bus during this time. to avoid update and data corruption conditions, external ram access to these locations can safely occur at two times. when a updated-ended interrupt is detected, almost 999 ms is available to read and write the valid ti me and date data. if the uip bit of register a is detected to be low, there is at least 488 s before the update cycle begins. warning: the overflow conditions for leap years and daylight savings adjustments are based on more than one date or time item. to ensure proper operation when adjusting the time, the new time and data values should be set at least two seconds before one of these conditions (leap year, daylight savings time adjustments) occurs. 5.13.2 interrupts the real-time clock interrupt is internally routed within the intel ? 631xesb/632xesb i/ o controller hub both to the i/o apic and the 8259. it is mapped to interrupt vector 8. this interrupt does not leave the intel ? 631xesb/632xesb i/o controller hub, nor is it shared with any other interrupt. irq8# from the serirq stream is ignored. however, the high performance event timers can also be mapped to irq8#; in this case, the rtc interrupt is blocked. 5.13.3 lockable ram ranges the rtc?s battery-backed ram supports two 8-byte ranges that can be locked by way of the configuration space. if the locking bits are set, the corresponding range in the ram will not be readable or writable. a write cycle to those locations will have no effect. a read cycle to those locations will not return the location?s actual value (resultant value is undefined). once a range is locked, the range can be unlocked only by a hard reset, which will invoke the bios and allow it to relock the ram range. 5.13.4 century rollover the intel ? 631xesb/632xesb i/o controller hub detects a rollover when the year byte (rtc i/o space, index offset 09h) transitions form 99 to 00. upon detecting the rollover, the intel ? 631xesb/632xesb i/o controller hub sets the newcentury_sts bit (tcobase + 04h, bit 7). if the system is in an s0 state, this causes an smi#. the smi# handler can update registers in the rtc ram that are associated with century value. if the system is in a sleep state (s1 ? s5) when the century rollover occurs, the
intel ? 631xesb/632xesb i/o controller hub datasheet 191 functional description intel ? 631xesb/632xesb i/o controller hub also sets the newcentury_sts bit, but no smi# is generated. when the system resumes from the sleep state, bios should check the newcentury_sts bit and update the century value in the rtc ram. 5.13.5 clearing battery-backed rtc ram clearing cmos ram in an intel ? 631xesb/632xesb i/o controller hub-based platform can be done by using a jumper on rtcrst# or gpi. implementations should not attempt to clear cmos by using a jumper to pull vccrtc low. using rtcrst# to clear cmos a jumper on rtcrst# can be used to clear cmos values, as well as reset to default, the state of those configuration bits that reside in the rtc power well. when the rtcrst# is strapped to ground, the rtc_pwr_sts bit (d31:f0:a4h bit 2) will be set and those configuration bits in the rtc power well will be set to their default state. bios can monitor the state of this bit, and manually clear the rtc cmos array once the system is booted. the normal position would cause rtcrst# to be pulled up through a weak pull-up resistor. ta bl e 5 - 3 9 shows which bits are set to their default state when rtcrst# is asserted. this rtcrst# jumper technique allows the jumper to be moved and then replaced, all while the system is powered off. then, once booted, the rtc_pwr_sts can be detected in the set state. table 5-39. configuration bits rese t by rtcrst# assertion (sheet 1 of 2) bit name register location bit(s) default state alarm interrupt enable (aie) i/o space (rtc index + 0bh) i/o space (rtc index + 0bh) 5x alarm flag (af) register c (flag register): rtc_regc i/o space (rtc index + 0ch) 5x swsmi_rate_sel general pm configuration 3 register: gen_pmcon_3 d31:f0:a4h 7:6 0 slp_s4# minimum assertion width general pm configuration 3 register: gen_pmcon_3 d31:f0:a4h 5:4 0 slp_s4# assertion stretch enable general pm configuration 3 register: gen_pmcon_3 d31:f0:a4h 3 0 rtc power status (rtc_pwr_sts) general pm configuration 3 register: gen_pmcon_3 d31:f0:a4h 2 0 power failure (pwr_flr) general pm configuration 3 register: (gen_pmcon_3) d31:f0:a4h 1 0 afterg3_en general pm configuration 3 register: gen_pmcon_3 d31:f0:a4h 0 0 power button override status (prbtnor_sts) power management 1status register: pm1_sts pmbase + 00h 11 0 rtc event enable (rtc_en) power management 1enable register: pm1_en pmbase + 02h 10 sleep type (slp_typ) power management 1 control: pm1_cnt pmbase + 04h 12:10 0
192 intel ? 631xesb/632xesb i/o controller hub datasheet functional description using a gpi to clear cmos a jumper on a gpi can also be used to clear cmos values. bios would detect the setting of this gpi on system boot-up, and manually clear the cmos array. note: the gpi strap technique to clear cmos requires multiple steps to implement. the system is booted with the jumper in new position, then powered back down. the jumper is replaced back to the normal position, then the system is rebooted again. the rtcrst# jumper technique allows the jumper to be moved and then replaced, all while the system is powered off. then, once booted, the rtc_pwr_sts can be detected in the set state. warning: clearing cmos, using a jumper on vccrtc, must not be implemented. 5.14 processor interface (d31:f0) the intel ? 631xesb/632xesb i/o controller hub interfaces to the processor with a variety of signals ? standard outputs to processor: a20m#, smi#, nmi, init#, intr, stpclk#, ignne#, cpuslp#, cpupwrgd ? standard input from processor: ferr# most intel ? 631xesb/632xesb i/o controller hub outputs to the processor use cmos open drain buffers. the intel ? 631xesb/632xesb i/o controller hub has separate v _cpu_io signals that are pulled up at the system level to the processor voltage, and thus determines voh for the outputs to the processor. the intel ? 631xesb/632xesb i/o controller hub contains one input from the cpu, ferr#. the vil threshold needs to be compatible with cpus that might drive ferr# to no higher than 1.3 v 5%. 5.14.1 processor interface signals this section describes each of the signals that interface between the intel ? 631xesb/ 632xesb i/o controller hub and the processor(s). note that the behavior of some signals may vary during processor reset, as the signals are used for frequency strapping. pme_en general purpose event 0 enables register (gpe0_en) pmbase + 2ch 11 0 batlow_en general purpose event 0 enables register (gpe0_en) pmbase + 2ch 10 ri_en general purpose event 0 enables register (gpe0_en) pmbase + 2ch 8 0 new_century_sts tco1 status register (tco1_sts) tcobase + 04h 7 0 intrd_det tco2 status register (tco2_sts) tcobase + 06h 0 0 top swap (ts) backed up control register (buc) chipset config registers:offset 3414h 0x table 5-39. configuration bits reset by rtcrst# assertion (sheet 2 of 2) bit name register location bit(s) default state
intel ? 631xesb/632xesb i/o controller hub datasheet 193 functional description 5.14.1.1 a20m# (mask a20) the a20m# signal is active (low) when both of the following conditions are true: ? the alt_a20_gate bit (bit 1 of port92 register) is a 0. ? the a20gate input signal is a 0. the a20gate input signal is expected to be generated by the external microcontroller (kbc). 5.14.1.2 init# (initialization) the init# signal is active (driven low) based on any one of several events described in ta bl e 5 - 4 0 . when any of these events occur, init# is driven low for 16 pci clocks, then driven high. note: the 16-clock counter for init# assertion halts while stpclk# is active. therefore, if init# is supposed to go active while stpclk# is asserted, it actually goes active after stpclk# goes inactive. this section refers to init#, but applies to two signals: init# and init3_3v#, as init3_3v# is functionally identical to init#, but signaling at 3.3v. 5.14.1.3 ferr#/ignne# (numeric coprocessor error / ignore numeric error) the intel ? 631xesb/632xesb i/o controller hub supports the coprocessor error function with the ferr#/ignne# pins. the function is enabled by way of the coproc_err_en bit (chipset config registers:offset 31ffh:bit 1). ferr# is tied directly to the coprocessor error signal of the processor. if ferr# is driven active by the processor, irq13 goes active (internally). when it detects a write to coproc_err (i/o register f0h), the intel ? 631xesb/632xesb i/o controller hub negates the internal irq13 and drives ignne# active. ignne# remains active until ferr# is driven inactive. ignne# is never driven active unless ferr# is active. table 5-40. init# going active cause of init# going active comment shutdown special cycle from processor. port92 write, where init_now (bit 0) transitions from a 0 to a 1. portcf9 write, where sys_rst (bit 1) was a 0 and rst_cpu (bit 2) transitions from 0 to 1. rcin# input signal goes low. rcin# is expected to be driven by the external microcontroller (kbc). 0 to 1 transition on rcin# must occur before the intel ? 631xesb/632xesb i/o controller hub will arm init# to be generated again. note: rcin# signal is expected to be high during s3 hot and low during s3 cold , s4, and s5 states. transition on the rcin# signal in those states (or the transition to those states) may not necessarily cause the init# signal to be generated to the processor. cpu bist to enter bist, software sets cpu_bist_en bit and then does a full processor reset using the cf9 register.
194 intel ? 631xesb/632xesb i/o controller hub datasheet functional description if coproc_err_en is not set, the assertion of ferr# will have not generate an internal irq13, nor will the write to f0h generate ignne#. 5.14.1.4 nmi (non-maskable interrupt) non-maskable interrupts (nmis) can be generated by several sources, as described in ta b l e 5 - 4 1 . 5.14.1.5 stop clock request and cpu sleep (stpclk# and cpuslp#) the intel ? 631xesb/632xesb i/o controller hub power management logic controls these active-low signals. refer to section 5.15 for more information on the functionality of these signals. 5.14.1.6 cpu power good (cpupwrgd) this signal is connected to the processor?s pwrgood input. this is an open-drain output signal (external pull-up resistor required) that represents a logical and of the intel ? 631xesb/632xesb i/o controller hub?s pwrok and vrmpwrgd signals. figure 5-17. coprocessor error timing diagram ferr# internal irq13 i/o write to f0h ignne# table 5-41. nmi sources cause of nmi comment serr# goes active (either internally, externally via serr# signal, or via message from mch) can instead be routed to generate an sci, through the nmi2sci_en bit (device 31:function 0, tco base + 08h, bit 11). iochk# goes active via serirq# stream (isa system error) can instead be routed to generate an sci, through the nmi2sci_en bit (device 31:function 0, tco base + 08h, bit 11).
intel ? 631xesb/632xesb i/o controller hub datasheet 195 functional description 5.14.2 dual-processor issues 5.14.2.1 signal differences in dual-processor designs, some of the processor signals are unused or used differently than for uniprocessor designs. 5.14.2.2 power management for multiple-cpu (or multiple-core) configurations in which more than one stop grant cycle may be generated, the mch is expected to count stop grant cycles and only pass the last one through to the intel ? 631xesb/632xesb i/o controller hub. this prevents the intel ? 631xesb/632xesb i/o controller hub from getting out of sync with the processor on multiple stpclk# assertions. because the s1 state will have the stpclk# signal active, the stpclk# signal can be connected to both processors. however, for acpi implementations, the bios must indicate that the intel ? 631xesb/632xesb i/o controller hub supports the c1 state for only dual-processor designs. in going to the s1 state, multiple stop-grant cycles will be generated by the cpus. the intel ? 631xesb/632xesb i/o controller hub also has the option to assert the cpu?s slp# signal (cpuslp#). it is assumed that prior to setting the slp_en bit (which causes the transition to the s1 state), the cpus will not be executing code that is likely to delay the stop-grant cycles. in going to the s3, s4, or s5 states, the system will appear to pass through the s1 state; thus, stpclk# and slp# are also used . during the s3, s4, and s5 states, both processors will lose power. upon exit from those states, the processors will have their power restored. 5.15 power management (d31:f0) 5.15.1 features ? support for advanced configuration and power interface, version 2.0 (acpi) providing power and thermal management ? acpi 24-bit timer ? software initiated throttling of processor performance for thermal and power reduction ? hardware override to throttle processor performance if system too hot ? sci and smi# generation ? pci pme# signal for wake up from low-power states table 5-42. dp signal differences signal difference a20m# / a20gate generally not used, but still supported by the intel ? 631xesb/632xesb i/o controller hub. stpclk# used for s1 state as well as preparation for entry to s3?s5 also allows for therm# based throttling (n ot via acpi control methods). should be connected to both processors. ferr# / ignne# generally not used, but still supported by intel ? 631xesb/632xesb i/o controller hub.
196 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ? pci express wake# signal for wake from low-power states ? sys_reset# input to eliminate external glue logic ? system sleep state control ? acpi s1 state: stop grant (using stpclk# signal) halts processor?s instruction stream (only stpclk# active, and cpuslp# optional) ? acpi s3 state ? suspend to ram (str) ? acpi s4 state ? suspend-to-disk (std) ? acpi g2/s5 state ? soft off (soff) ? power failure detection and recovery ? support for intel itanium architecture processors note: for ia-32 desktop systems, and systems with intel itanium architecture processors, the intel ? 631xesb/632xesb i/o controller hub does not support the c2 states. acpi throttling is not directly supported for any platform that has more than one logical processor. software can be used to coordinate throttling requirements among several logical processors. 5.15.2 intel ? 631xesb/632xesb i/o controller hub and system power states ta b l e 5 - 4 3 shows the power states defined for intel ? 631xesb/632xesb i/o controller hub-based platforms. the state names generally match the corresponding acpi states. table 5-43. general power states for systems using intel ? 631xesb/632xesb i/o controller hub (sheet 1 of 2) state/ substates legacy name / description g0/s0/c0 full on: processor operating. individual devices may be shut down to save power. the different processor operating levels are defined by cx states, as shown in ta b l e 5 - 4 4 . within the c0 state, the intel ? 631xesb/632xesb i/o controller hub can throttle the processor using the stpclk# signal to reduce power cons umption. the throttling can be initiated by software or by the operating system or bios. g0/s0/c1 auto-halt: processor has executed an autohalt instruction and is not executing code. the processor snoops the bus and maintains cache coherency. g0/s0/c2 stop-grant: the stpclk# signal goes active to the processor. the processor performs a stop-grant cycle, halts its instruction stream, and remains in that state until the stpclk# signal goes inactive. in the stop-grant state, the processor snoops the bus and maintains cache coherency. note: this state is not supported for ia-64 processors. they should instead use c1. g0/s0/c3 stop-clock: this is only for mobile systems. the stpclk# signal goes active to the processor. the processor performs a stop-grant cycle, halts its instruction stream. then asserts slp#, then dpslp#, followed by stp_cpu#, which forces the clock generator to stop the processor clock. this is also used for intel speedstep technology support. accesses to memory (by agp, pci, or internal units) is not permitted while in a c3 state, except the new non-snoop cycles associated with pci express. it is assumed that the arb_dis bit is set by software prior to entering c3 state, even if the hardware ignores the arb_dis bit. g0/s0/c4 stop-clock with lower processor voltage. this closely resembles the g0/s0/c3 state. however, after the has asserted stp_cpu#, it then lowers the voltage to the processor by asserting dprslpvr. this reduces processor leakage. prior to exiting the c4 state, the deasserts dprslpvr, which increases the voltage to the processor. the yonah processor enhances c4 (i.e., c4e), but requires the dprstp# pin. g1/s1 stop-grant: similar to g0/s0/c2 state. the intel ? 631xesb/632xesb i/o controller hub also has the option to assert the cpuslp# signal to further reduce processor power consumption. note: the behavior for this state is slightly different when supporting ia-64 processors. the platform will generally use 10s of watts during this state. note: may be too high for meeting energy star requirements for some platforms. note: this was previously known as s1-d, but was renamed due to deletion of s1-m.
intel ? 631xesb/632xesb i/o controller hub datasheet 197 functional description note: the above table is for informational purposes, and should not be used by designers or validators as part of th e behavioral description. ta bl e 5 - 4 4 shows the transitions rules among the various states. note: transitions among the various states may appear to temporarily transition through intermediate states. for example, in going from s0 to s1, it may appear to pass through the g0/s0/c2 states. these intermediate transitions and states are not listed in the table. note: some wake events can be preserved through power failure. g1/s3 suspend-to-ram (str): the system context is maintained in system dram, but power is shut off to non-critical circuits. memory is retained, and refreshes continue. all clocks stop except rtc clock. note: there are two flavors of s3: s3-hot and s3-cold. s3-hot uses slp_s4# to kill system power rather than slp_s3#. it requires fewer fets, has more power planes to be on during s3 and results in a less expensive platform. there are no differences from the intel ? 631xesb/632xesb i/o controller hub perspective. g1/s4 suspend-to-disk (std): the context of the system is maintained on the disk. all power is then shut off to the system except for the logic required to resume. g2/s5 soft off (soff): system context is not maintained. all power is shut off except for the logic required to restart. a full boot is required when waking. g3 mechanical off (moff): system context not maintained. all power is shut off except for the rtc. no ?wake? events are possible, because the system does not have any power. this state occurs if the user turns off a mechanical switch or if the system power supply is at a level that is insufficient to power the ?waking? logic. when system power returns, transition will depends on the state just prior to th e entry to g3 and the afterg3 bit in the gen_pmcon3 register (d31:f0, offset a4). refer to ta b l e 5 - 5 0 for more details. table 5-43. general power states for systems using intel ? 631xesb/632xesb i/o controller hub (sheet 2 of 2) state/ substates legacy name / description table 5-44. state transition rules for intel ? 631xesb/632xesb i/o controller hub present state transition trigger next state g0/s0/c0 ? processor halt instruction ?level 2 read ?slp_en bit set ? power button override ? mechanical off/power failure ?g0/s0/c1 ?g0/s0/c2 ? g1/sx or g2/s5 state ?g2/s5 ?g3 g0/s0/c1 ? any enabled break event ?stpclk# goes active ? power button override ? power failure ?g0/s0/c0 ?g0/s0 ?g2/s5 ?g3 g0/s0/c2 ? any enabled break event ? power button override ? resume well power failure ?g0/s0/c0 ?g2/s5 ?g3 g1/s1, g1/s3, or g1/s4 ?any enabled wake event ? power button override ? power failure ?g0/s0/c0 ?g2/s5 ?g3 g2/s5 ? any enabled wake event ? power failure ?g0/s0/c0 ?g3 g3 ?power returns ? optional to go to s0/c0 (reboot) or g2/s5 (stay off until power button pressed or other wake event). (see note 1)
198 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.15.3 system power planes the system has several independent power planes, as described in ta b l e 5 - 4 5 . note that when a particular power plane is shut off, it should go to a 0 v level. s 5.15.4 smi#/sci generation upon any smi# event taking place, intel ? 631xesb/632xesb i/o controller hub asserts smi# to the processor, which causes it to enter smm space. smi# remains active until the eos bit is set. when the eos bit is set, smi# goes inactive for a minimum of 4 pciclk. if another smi event occurs, smi# is driven active again. the sci is a level-mode interrupt that is typically handled by an acpi-aware operating system. in non-apic systems (which is the default), the sci irq is routed to one of the 8259 interrupts (irq 9, 10, or 11). the 8259 interrupt controller must be programmed to level mode for that interrupt. in systems using the apic, the sci can be routed to interrupts 9, 10, 11, 20, 21, 22, or 23. the interrupt polarity changes depending on whether it is on an interrupt shareable with a pirq or not (see section 21.1.13 ). the interrupt remains asserted until all sci sources are removed. ta b l e 5 - 4 6 shows which events can cause an smi# and sci. note that some events can be programmed to cause either an smi# or sci. the usage of the event for sci (instead of smi#) is typically associated with an acpi-based system. each smi# or sci source has a corresponding enable and status bit. table 5-45. system power plane plane controlled by description cpu slp_s3# signal the slp_s3# signal can be used to cut the power to the processor completely. main slp_s3# or slp_s4# signal s3-cold: when slp_s3# goes active, power can be shut off to any circuit not required to wake the system from the s3 state. since the s3 state requires that the memory context be preserved, power must be retained to the main memory. devices on the pci bus, lpc interface, esi and pci express will typically be shut off when the main power plane is shut, although there may have small subsections powered. s3-hot: slp_s4# is used to cut the main power well, rather than using slp_s3#. this impacts the board design, but there is no specific intel ? 631xesb/632xesb i/o controller hub bit or strap needed to indicate which option is selected. devices and memory slp_s4# signal slp_s5# signal when the slp_s4# goes active, power can be shut off to any circuit not required to wake the system from the s4. since the memory context does not need to be preserved in the s4 state, the power to the memory can also be shut down. when slp_s5# goes active, power can be shut to any circuit not required to wake the system from the s5 state. since the memory context does not need to be preserved in the s5 state, the power to the memory can also be shut. device[n] gpio individual subsystems may have their own power plane. for example, gpio signals may be used to control the power to disk drives, audio amplifiers, or the display screen.
intel ? 631xesb/632xesb i/o controller hub datasheet 199 functional description table 5-46. causes of smi# and sci (sheet 1 of 2) cause sci smi additional enables where reported pme# yes yes pme_en=1 pme_sts pme_b0 (internal ehci controller) yes yes pme_b0_en=1 pme_b0_sts sata sci yes no sata_sci_en = 1 sata_sci_sts bit pci express pme messages yes yes pci_exp_en=1 (not enabled for smi) pci_exp_sts pci express hot-plug message yes yes hot_plug_en=1 (not enabled for smi) hot_plug_sts power button press yes yes pwrbtn_en=1 pwrbtn_sts rtc alarm yes yes rtc_en=1 rtc_sts ring indicate yes yes ri_en=1 ri_sts ac?97 wakes yes yes ac97_en=1 ac97_sts usb#1 wakes yes yes usb1_en=1 usb1_sts usb#2 wakes yes yes usb2_en=1 usb2_sts usb#3 wakes yes yes usb3_en=1 usb3_sts usb#4 wakes yes yes usb4_en=1 usb4_sts thrm# pin active yes yes thrm_en=1 thrm_sts acpi timer overflow (2.34 sec.) yes yes tmrof_en=1 tmrof_sts any gpi yes yes gpio[x]_route=10 (sci) gpio[x]_route=01 (smi) gpe0[x]_en=1 gpio[x]_sts gpe0_sts tco sci logic yes no tcosci_en=1 tcosci_sts tco sci message from mch yes no none mchsci_sts tco smi logic no yes tco_en=1 tco_sts tco smi ? year 2000 rollover no yes none newcentury_sts tco smi ? tco timerout no yes none timeout tco smi ? os writes to tco_dat_in register no yes none os_tco_smi tco smi ? message from mch no yes none mchsmi_sts tco smi ? nmi occurred (and nmis mapped to smi) no yes nmi2smi_en=1 nmi2smi_sts tco smi ? intruder# signal goes active no yes intrd_sel=10 intrd_det tco smi ? change of the bioswp bit from 0 to 1 no yes bld=1 bioswr_sts tco smi ? write attempted to bios no yes bioswp=1 bioswr_sts bios_rls written to yes no gbl_en=1 gbl_sts gbl_rls written to no yes bios_en=1 bios_sts periodic timer expires no yes periodic_en=1 periodic_sts 64 ms timer expires no yes sw smi_tmr_en=1 swsmi_tmr_sts enhanced usb legacy support event no yes legacy_usb2_en = 1 legacy_usb2_sts enhanced usb intel specific event no yes intel_usb2_en = 1 intel_usb2_sts uhci usb legacy logic no yes legacy_usb_en=1 legacy_usb_sts serial irq smi reported no yes none serirq_smi_sts
200 intel ? 631xesb/632xesb i/o controller hub datasheet functional description notes: 1. sci_en must be 1 to enable sci. sci_en must be 0 to enable smi. 2. sci can be routed to cause interrupt 9:11 or 20:23 (20:23 available only in apic mode). 3. gbl_smi_en must be 1 to enable smi. 4. eos must be written to 1 to re-enable smi for the next 1. 5.15.4.1 sata sci sata can cause an sci, but not an smi or wa ke event. when sata causes an sci, the sata_sci_sts bit will be set. 5.15.4.2 pci express* sci the intel ? 631xesb/632xesb i/o controller hub?s pci express root and downstream ports and the mch (by way of esi) have the ability to cause pme using messages. when a pme message is received, intel ? 631xesb/632xesb i/o controller hub will set the pci_exp_sts bit. if the pci_exp_en bit is also set, the intel ? 631xesb/632xesb i/o controller hub can cause an sci by way of the gpe1_sts register. 5.15.4.3 pci express* hot-plug pci express has a hot-plug mechanism and is capable of generating a sci by way of the gpe1 register. it is also capable of generating an smi. however, it is not capable of generating a wake event. 5.15.5 dynamic processor clock control the intel ? 631xesb/632xesb i/o controller hub has primary control for dynamically starting and stopping system clocks. the clock control is used for transitions among the various s0/cx states, and processor throttling. each dynamic clock control method is described in this section. the various sleep states may also perform types of non- dynamic clock control. the intel ? 631xesb/632xesb i/o controller hub supports the acpi c0 and c1 states. the dynamic processor clock control is handled using the following signals: ? stpclk#: used to halt processor instruction stream. the c1 state is entered based on the processor performing an auto halt instruction. a c1 state ends due to a break event. based on the break event, the intel ? 631xesb/ 632xesb i/o controller hub returns the system to c0 state. device monitors match address in its range no yes none devmon_sts, devact_sts smbus host controller no yes smb_smi_en host controller enabled smbus host status reg. smbus slave smi message no yes none smbus_smi_sts smbus smbalert# signal active no yes none smbus_smi_sts smbus host notify message received no yes host_notify_intren smbus_smi_sts host_notify_sts access microcontroller 62h/66h no yes mcsmi_en mcsmi_sts slp_en bit written to 1 no yes smi_on_slp_en=1 smi_on_slp_en_sts table 5-46. causes of smi# and sci (sheet 2 of 2) cause sci smi additional enables where reported
intel ? 631xesb/632xesb i/o controller hub datasheet 201 functional description 5.15.5.1 transition rules among s0/cx and throttling states the following priority rules and assumptions apply among the various s0/cx and throttling states: ? entry to any s0/cx state is mutually exclusive with entry to any s1?s5 state. this is because the processor can perform only one register access at a time and sleep states have higher priority than thermal throttling. ? when the slp_en bit is set (system going to a s1 - s5 sleep state), the thtl_en and force_thtl bits can be internally treated as being disabled (no throttling while entering sleep state). ? the host controller must post stop-grant cycles in such a way that the processor gets an indication of the end of the special cycle prior to the intel ? 631xesb/ 632xesb i/o controller hub observing the stop-grant cycle. this ensures that the stpclk# signals stays active for a sufficient period after the processor observes the response phase. 5.15.6 sleep states 5.15.6.1 sleep state overview the intel ? 631xesb/632xesb i/o controller hub directly supports different sleep states (s1?s5), which are entered by setting the slp_en bit, or due to a power button press. the entry to the sleep states are based on several assumptions: ? entry to a cx state is mutually exclusive with entry to a sleep state. this is because the processor can perform only one register access at a time. a request to sleep always has higher priority than throttling. ? prior to setting the slp_en bit, the software turns off processor-controlled throttling. note that thermal throttling cannot be disabled, but setting the slp_en bit disables thermal throttling (since s1?s5 sleep state has higher priority). ? the g3 state cannot be entered by way of any software mechanism. the g3 state indicates complete power loss. 5.15.6.2 initiating sleep state sleep states (s1?s5) are initiated by: ? masking interrupts, turning off all bus master enable bits, setting the desired type in the slp_typ field, and then setting the slp_en bit. the hardware then attempts to gracefully put the system into the corresponding sleep state. ? pressing the pwrbtn# signal for more than 4 seconds to cause a power button override event. in this case the transition to the s5 state is less graceful, since there are no dependencies on observing stop-grant cycles from the processor or on clocks other than the rtc clock.
202 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.15.6.3 exiting sleep states sleep states (s1?s5) are exited based on wake events. the wake events forces the system to a full on state (s0), although some non-critical subsystems might still be shut off and have to be brought back manually. for example, the hard disk may be shut off during a sleep state, and have to be enabled by way of a gpio pin before it can be used. upon exit from the intel ? 631xesb/632xesb i/o controller hub-controlled sleep states, the wak_sts bit is set. the possible causes of wake events (and their restrictions) are shown in ta b l e 5 - 4 8 . notes: 1. this is a wake event from s5 only if the sleep state was entered by setting the slp_en and slp_typ bits by way of software, or if there is a power failure. 2. if in the s5 state due to a powerbutton override or thrmtrip#, the possible wake events are due to power button, hard reset without cycling (see command type 3 in ta b l e 5 - 7 1 ), and hard reset system (see command type 4 in ta bl e 5 -7 1 ). table 5-47. sleep types sleep type comment s1 intel ? 631xesb/632xesb i/o controller hub asserts the stpclk# signal. it also has the option to assert cpuslp# signal. this lowers the processor?s power consumption. no snooping is possible in this state. s3 intel ? 631xesb/632xesb i/o controller hub asserts slp_s3#. the slp_s3# signal controls the power to non-critical circuits. power is retained only to devices needed to wake from this sleeping state, as well as to the memory. s4 intel ? 631xesb/632xesb i/o controller hub asserts slp_s3# and slp_s4#. the slp_s4# signal shuts off the power to the memory subsystem. only devices needed to wake from this state should be powered. s5 same power state as s4. intel ? 631xesb/632xesb i/o controller hub asserts slp_s3#, slp_s4# and slp_s5#. table 5-48. causes of wake events cause states can wake from how enabled rtc alarm s1 ? s5 (note 1) set rtc_en bit in pm1_en register power button s1 ? s5 always enabled as wake event gpio[0:n] s1?s5 (note 1) gpe0_en register note: gpis that are in the core well are not capable of waking the system from sleep states where the core well is not powered. classic usb s1?s5 set usb1_en, usb 2_en, usb3_en, and usb4_en bits in gpe0_en register ri# s1?s5 (note 1) set ri_en bit in gpe0_en register ac?97 / intel high definition audio s1?s5 set ac97_en bit in gpe0_en register primary pme# s1?s5 (note 1) pme_b0_en bit in gpe0_en register secondary pme# s1?s5 set pme_en bit in gpe0_en register. pci_exp_wake# s1?s5 pci_exp_wake bit pci_exp pme message s1 must use the pci express wake# pin rather than messages for wake from s3,s4, or s5. smbalert# s1 ? s5 always enabled as wake event smbus slave message s1 ? s5 wake/smi# command always enabled as a wake event. note: smbus slave message can wake the system from s1?s5, as well as from s5 due to power button override. smbus host notify message received s1 ? s5 host_notify_wken bit smbus slave command register. reported in the smb_wak_sts bit in the gpeo_sts register.
intel ? 631xesb/632xesb i/o controller hub datasheet 203 functional description it is important to understand that the various gpis have different levels of functionality when used as wake events. the gpis that reside in the core power well can generate wake events from sleep states only where the core well is powered. also, only certain gpis are ?acpi compliant,? meaning that their status and enable bits reside in acpi i/ o space. ta bl e 5 - 4 9 summarizes the use of gpis as wake events. the latency to exit the various sleep states varies greatly and is heavily dependent on power supply design, so much so that the exit latencies due to the intel ? 631xesb/ 632xesb i/o controller hub are insignificant. 5.15.6.4 pci express* wake# signal and pme event message pci express root and downstream ports can wake the platform from any sleep state (s1, s3, s4, or s5) using the wake# pin. wake# is treated as a wake event, but does not cause any bits to go active in the gpe_sts register. pci express ports and the mch (by way of esi) have the ability to cause pme using messages. when a pme message is received, intel ? 631xesb/632xesb i/o controller hub will set the pci_exp_sts bits. 5.15.6.5 sx-g3-sx, handling power failures in server systems, power failures can occur if the ac power is cut (a real power failure) or if the system is unplugged. in either case, pwrok and rsmrst# are assumed to go low. depending on when the power failure occurs and how the system is designed, different transitions could occur due to a power failure. the after_g3 bit provides the ability to program whether or not the system should boot once power returns after a power loss event. if the policy is to not boot, the system remains in an s5 state (unless previously in s4). there are only three possible events that will wake the system after a power failure. 1. pwrbtn#: pwrbtn# is always enabled as a wake event. when rsmrst# is low (g3 state), the pwrbtn_sts bit is reset. when the intel ? 631xesb/632xesb i/o controller hub exits g3 after power returns (rsmrst# goes high), the pwrbtn# signal is already high (because v cc -standby goes high before rsmrst# goes high) and the pwrbtn_sts bit is 0. 2. ri#: ri# does not have an internal pull-up. therefore, if this signal is enabled as a wake event, it is important to keep this signal powered during the power loss event. if this signal goes low (active), when power returns the ri_sts bit is set and the system interprets that as a wake event. 3. rtc alarm: the rtc_en bit is in the rtc well and is preserved after a power loss. like pwrbtn_sts the rtc_sts bit is cleared when rsmrst# goes low. the intel ? 631xesb/632xesb i/o controller hub monitors both pwrok and rsmrst# to detect for power failures. if pwrok goes low, the pwrok_flr bit is set. if rsmrst# goes low, pwr_flr is set. table 5-49. gpi wake events gpi power well wake from notes gpio[7:0] core s1 gpio[15:14, 11:8] resume s1?s5 acpi compliant
204 intel ? 631xesb/632xesb i/o controller hub datasheet functional description note: although pme_en is in the rtc well, this signal cannot wake the system after a power loss. pme_en is cleared by rtcrst#, and pme_sts is cleared by rsmrst#. 5.15.7 thermal management the intel ? 631xesb/632xesb i/o controller hub has several mechanisms to assist with managing thermal problems in the system. note: thermal management based on throttling is not supported when the intel ? 631xesb/ 632xesb i/o controller hub is used with itanium architecture-based processors. 5.15.7.1 thrm# signal the thrm# signal is used as a status input for a thermal sensor. the sensor could be inside the processor or in a separate component near the processor. the intel ? 631xesb/632xesb i/o controller hub follows these behaviors with regard to the thrm# signal: 1. based on the thrm# signal going active, the intel ? 631xesb/632xesb i/o controller hub generates an smi# or sci (depending on sci_en). 2. if the thrm_pol bit is set low, when the thrm# signal goes low, the thrm_sts bit will be set. this is an indicator that the thermal threshold has been exceeded. if the thrm_en bit is set, then when thrm_sts goes active, either an smi# or sci will be generated (depending on the sci_en bit being set). the power management software (bios or acpi) can then take measures to start reducing the temperature. examples include shutting off unwanted subsystems, or halting the processor. 3. by setting the thrm_pol bit to high, another smi# or sci can optionally be generated when the thrm# signal goes back high. this allows the software (bios or acpi) to turn off the cooling methods. note: thrm# assertion does not cause a tco event message in s3 or s4. the level of the signal is not reported in the heartbeat message. 5.15.7.2 processor initiated passive cooling this is a method to cool the system by throttling the processor. the mode is initiated by software setting the thtl_en or thtl_dty bits. behavioral description: 1. software sets the thtl_dty bits to select throttle ratio and thtl_en bit to enable the throttling. 2. throttling results in stpclk# active for a minimum time of 12.5% and a maximum of 87.5%. the period is 1024 pci clocks. thus, the stpclk# signal can be active for as little as 128 pci clocks or as much as 896 pci clocks. the actual slowdown (and cooling) of the processor depends on the instruction stream, because the table 5-50. transitions due to power failure state at power failure afterg3_en bit transition when power returns s0, s1, s3 1 0 s5 s0 s4 1 0 s4 s0 s5 1 0 s5 s0
intel ? 631xesb/632xesb i/o controller hub datasheet 205 functional description processor is allowed to finish the current instruction. furthermore, the intel ? 631xesb/632xesb i/o controller hub waits for the stop-grant cycle before starting the count of the time the stpclk# signal is active. 3. intel ? 631xesb/632xesb i/o controller hub will perform the go-c2/ack-c2 and go-c0/ack-c0 messages for throttling, just as if it were making transitions to/from a c2 state. 5.15.7.3 thrm# override software bit the force_thtl bit allows the bios to force passive cooling, independent of the acpi software (which uses the thtl_en and thtl_dty bits). if this bit is set, the intel ? 631xesb/632xesb i/o controller hub starts throttling using the ratio in the thrm_dty field. when this bit is cleared the intel ? 631xesb/632xesb i/o controller hub stops throttling, unless the thtl_en bit is set (indicating that acpi software is attempting throttling). if both the thtl_en and force_thtl bits are set, then the intel ? 631xesb/632xesb i/o controller hub should use the duty cycle defined by the thrm_dty field, not the thtl_dty field. 5.15.7.4 active cooling active cooling involves fans. the gpio signals from the intel ? 631xesb/632xesb i/o controller hub can be used to turn on/off a fan. 5.15.8 event input signals and their usage the intel ? 631xesb/632xesb i/o controller hub has various input signals that trigger specific events. this section describes those signals and how they should be used. 5.15.8.1 pwrbtn# (power button) the intel ? 631xesb/632xesb i/o controller hub pwrbtn# signal operates as a ?fixed power button? as described in the advanced configuration and power interface, version 2.0b. pwrbtn# signal has a 16 ms de-bounce on the input. the state transition descriptions are included in ta b l e 5 - 5 1 . note that the transitions start as soon as the pwrbtn# is pressed (but after the debounce logic), and does not depend on when the power button is released. note: during the time that the slp_s4# signal is stretched for the minimum assertion width (if enabled), the power button is not a wake event. refer to power button override function section below for further detail.
206 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.15.8.1.1 power button override function if pwrbtn# is observed active for at least four consecutive seconds, the state machine should unconditionally transition to the g2/s5 state, regardless of present state (s0? s4), even if pwrok is not active. in this case, the transition to the g2/s5 state should not depend on any particular response from the processor (for example, a stop-grant cycle), nor any similar dependency from any other subsystem. the pwrbtn# status is readable to check if the button is currently being pressed or has been released. the status is taken after the de-bounce, and is readable by way of the pwrbtn_lvl bit. note: the 4-second pwrbtn# assertion should only be used if a system lock-up has occurred. the 4-second timer starts counting when the intel ? 631xesb/632xesb i/o controller hub is in a s0 state. if the pwrbtn# signal is asserted and held active when the system is in a suspend state (s1?s5), the assertion causes a wake event. once the system has resumed to the s0 state, the 4-second timer starts. note: during the time that the slp_s4# signal is stretched for the minimum assertion width (if enabled by d31:f0:a4h bit 3), the power button is not a wake event. as a result, it is conceivable that the user will press and continue to hold the power button waiting for the system to awake. since a 4-second press of the power button is already defined as an unconditional power down, the power button timer will be forced to inactive while the power-cycle timer is in progress. once the power-cycle timer has expired, the power button awakes the system. once the minimum slp_s4# power cycle expires, the power button must be pressed for another 4 to 5 seconds to create the override condition to s5. 5.15.8.1.2 sleep button the advanced configuration and power interface, version 2.0b defines an optional sleep button. it differs from the power button in that it is only a request to go from s0 to s1?s4 (not s5). also, in an s5 state, the power button can wake the system, but the sleep button cannot. although the intel ? 631xesb/632xesb i/o controller hub does not include a specific signal designated as a sleep button, one of the gpio signals can be used to create a ?control method? sleep button. see the advanced configuration and power interface, version 2.0b for implementation details. table 5-51. transitions due to power button present state event transition/action comment s0/cx pwrbtn# goes low. smi# or sci generated (depending on sci_en). software typically initiates a sleep state. s1?s5 pwrbtn# goes low. wake event. transitions to s0 state. standard wakeup. g3 pwrbtn# pressed. none. no effect since no power. not latched nor detected. s0?s4 pwrbtn# held low for at least 4 consecutive seconds. unconditional transition to s5 state. no dependence on processor (for example, stop-grant cycles) or any other subsystem.
intel ? 631xesb/632xesb i/o controller hub datasheet 207 functional description 5.15.8.2 ri# (ring indicator) the ring indicator can cause a wake event (if enabled) from the s1?s5 states. ta bl e 5 - 5 2 shows when the wake event is generated or ignored in different states. if in the g0/s0/cx states, the intel ? 631xesb/632xesb i/o controller hub generates an interrupt based on ri# active, and the interrupt will be set up as a break event. note: filtering/debounce on ri# will not be done in intel ? 631xesb/632xesb i/o controller hub. can be in modem or external. 5.15.8.3 pme# (pci power management event) the pme# signal comes from a pci device to request that the system be restarted. the pme# signal can generate an smi#, sci, or optionally a wake event. the event occurs when the pme# signal goes from high to low. no event is caused when it goes from low to high. there is also an internal pme_b0 bit. this is separate from the external pme# signal and can cause the same effect. 5.15.8.4 sys_reset# signal when the sys_reset# pin is detected as active after the 16 ms debounce logic, the intel ? 631xesb/632xesb i/o controller hub attempts to perform a ?graceful? reset, by waiting up to 25 ms for the smbus to go idle. if the smbus is idle when the pin is detected active, the reset occurs immediately; otherwise, the counter starts. if at any point during the count the smbus goes idle the reset occurs. if, however, the counter expires and the smbus is still active, a reset is forced upon the system even though activity is still occurring. once the reset is asserted, it remains asse rted for ~1 ms regardless of whether the sysreset# input remains asserted or not. it cannot occur again until sys_reset# has been detected inactive after the debounce logic, and the system is back to a full s0 state with pltrst# inactive. 5.15.8.5 thrmtrip# signal if thrmtrip# goes active, the processor is indicating an overheat condition, and the intel ? 631xesb/632xesb i/o controller hub immediately transitions to an s5 state. however, since the processor has overheated, it does not respond to the intel ? 631xesb/632xesb i/o controller hub?s stpclk# pin with a stop grant special cycle. therefore, the intel ? 631xesb/632xesb i/o controller hub does not wait for one. immediately upon seeing thrmtrip# low, the intel ? 631xesb/632xesb i/o controller hub initiates a transition to the s5 state, drive slp_s3#, slp_s4#, slp_s5# low, and set the cts bit. the transition looks like a power button override. table 5-52. transitions due to ri# signal present state event ri_en event s0 ri# active x ignored s1?s5 ri# active 0 1 ignored wake event
208 intel ? 631xesb/632xesb i/o controller hub datasheet functional description it is extremely important that when a thrmtrip# event occurs, the intel ? 631xesb/ 632xesb i/o controller hub power down immediately without following the normal s0 -> s5 path. this path may be taken in parallel, but intel ? 631xesb/632xesb i/o controller hub must immediately enter a power down state. it does this by driving slp_s3#, slp_s4#, and slp_s5# immediately after sampling thrmtrip# active. if the processor is running extremely hot and is heating up, it is possible (although very unlikely) that components around it, such as the intel ? 631xesb/632xesb i/o controller hub, are no longer executing cycl es properly. therefore, if thrmtrip# goes active, and the intel ? 631xesb/632xesb i/o controller hub is relying on state machine logic to perform the power down, the state machine may not be working, and the system will not power down. the intel ? 631xesb/632xesb i/o controller hub follows this flow for thrmtrip#. 1. at boot (pltrst# low), thrmtrip# ignored. 2. after power-up (pltrst# high), if thrmtrip# sampled active, slp_s3#, slp_s4#, and slp_s5# assert, and normal sequence of sleep machine starts. 3. until sleep machine enters the s5 state, slp_s3#, slp_s4#, and slp_s5# stay active, even if thrmtrip# is now inactive. this is the equivalent of ?latching? the thermal trip event. 4. if s5 state reached, go to step #1, otherwise stay here. if the intel ? 631xesb/ 632xesb i/o controller hub never reaches s5, the intel ? 631xesb/632xesb i/o controller hub does not reboot until power is cycled. during boot, thrmtrip# is ignored until slp_s3#, pwrok, vrmpwrgd/vgate, and pltrst# are all ?1?. during entry into a powered-down state (due to s3,s4, s5 entry, power cycle reset, and so forth.) thrmtrip# is ignored until either slp_s3# = 0, or pwrok = 0, or vrmpwrgd/ vgate = 0. note: a thermal trip event will: ? set the afterg3_en bit. ? clear the pwrbtn_sts bit. ? clear all the gpe0_en register bits. ? clear the smb_wak_sts bit only if smb_sak_sts was set due to smbus slave receiving message and not set due to smbalert. 5.15.9 alt access mode before entering a low power state, several registers from powered down parts may need to be saved. in the majority of cases, this is not an issue, as registers have read and write paths. however, several of the isa compatible registers are either read only or write only. to get data out of write-only registers, and to restore data into read-only registers, the intel ? 631xesb/632xesb i/o controller hub implements an alt access mode. if the alt access mode is entered and exited after reading the registers of the intel ? 631xesb/632xesb i/o controller hub timer (8254), the timer starts counting faster (13.5 ms). the following steps listed below can cause problems: 1. bios enters alt access mode for reading the intel ? 631xesb/632xesb i/o controller hub timer related registers. 2. bios exits alt access mode.
intel ? 631xesb/632xesb i/o controller hub datasheet 209 functional description 3. bios continues through the execution of other needed steps and passes control to the operating system. after getting control in step #3, if the operating system does not reprogram the system timer again, the timer ticks may be happen ing faster than expected. for example dos and its associated software assume that the system timer is running at 54.6 ms and as a result the time-outs in the software may be happening faster than expected. operating systems (for example, microsoft windows* 98, windows* 2000, and windows nt*) reprogram the system timer and therefore do not encounter this problem. for some other loss (for example, microsoft ms-dos*) the bios should restore the timer back to 54.6 ms before passing control to the operating system. if the bios is entering alt access mode before entering the suspend state it is not necessary to restore the timer contents after the exit from alt access mode. 5.15.9.1 write only registers with read paths in alt access mode the registers described in ta b l e 5 - 5 3 have read paths in alt access mode. the access number field in the table indicates which register will be returned per access to that port. table 5-53. write only registers with read paths in alt access mode (sheet 1 of 2) restore data restore data i/o addr # of rds access data i/o addr # of rds access data 00h 2 1 dma chan 0 base address low byte 40h 7 1 timer counter 0 status, bits [5:0] 2 dma chan 0 base address high byte 2 timer counter 0 base count low byte 01h 2 1 dma chan 0 base count low byte 3 timer counter 0 base count high byte 2 dma chan 0 base count high byte 4 timer counter 1 base count low byte 02h 2 1 dma chan 1 base address low byte 5 timer counter 1 base count high byte 2 dma chan 1 base address high byte 6 timer counter 2 base count low byte 03h 2 1 dma chan 1 base count low byte 7 timer counter 2 base count high byte 2 dma chan 1 base count high byte 41h 1 timer counter 1 status, bits [5:0] 04h 2 1 dma chan 2 base address low byte 42h 1 timer counter 2 status, bits [5:0] 2 dma chan 2 base address high byte 70h 1 bit 7 = nmi enable, bits [6:0] = rtc address 05h 2 1 dma chan 2 base count low byte c4h 2 1 dma chan 5 base address low byte 2 dma chan 2 base count high byte 2 dma chan 5 base address high byte 06h 2 1 dma chan 3 base address low byte c6h 2 1 dma chan 5 base count low byte 2 dma chan 3 base address high byte 2 dma chan 5 base count high byte 07h 2 1 dma chan 3 base count low byte c8h 2 1 dma chan 6 base address low byte 2 dma chan 3 base count high byte 2 dma chan 6 base address high byte
210 intel ? 631xesb/632xesb i/o controller hub datasheet functional description notes: 1. the ocw1 register must be read before entering alt access mode. 2. bits 5, 3, 1, and 0 return 0. 5.15.9.2 pic reserved bits many bits within the pic are reserved, and must have certain values written in order for the pic to operate properly. therefore, there is no need to return these values in alt access mode. when reading pic registers from 20h and a0h, the reserved bits shall return the values listed in ta b l e 5 - 5 4 . 08h 6 1 dma chan 0?3 command 2 cah 2 1 dma chan 6 base count low byte 2 dma chan 0?3 request 2 dma chan 6 base count high byte 3 dma chan 0 mode: bits(1:0) = 00 cch 2 1 dma chan 7 base address low byte 4 dma chan 1 mode: bits(1:0) = 01 2 dma chan 7 base address high byte 5 dma chan 2 mode: bits(1:0) = 10 ceh 2 1 dma chan 7 base count low byte 6 dma chan 3 mode: bits(1:0) = 11. 2 dma chan 7 base count high byte 20h 12 1 pic icw2 of master controller d0h 6 1 dma chan 4?7 command 2 2 pic icw3 of master controller 2 dma chan 4?7 request 3 pic icw4 of master controller 3 dma chan 4 mode: bits(1:0) = 00 4 pic ocw1 of master controller 1 4 dma chan 5 mode: bits(1:0) = 01 5 pic ocw2 of master controller 5 dma chan 6 mode: bits(1:0) = 10 6 pic ocw3 of master controller 6 dma chan 7 mode: bits(1:0) = 11. 7 pic icw2 of slave controller 8 pic icw3 of slave controller 9 pic icw4 of slave controller 10 pic ocw1 of slave controller 1 11 pic ocw2 of slave controller 12 pic ocw3 of slave controller table 5-53. write only registers with read paths in alt access mode (sheet 2 of 2) restore data restore data i/o addr # of rds access data i/o addr # of rds access data table 5-54. pic reserved bits return values pic reserved bits value returned icw2(2:0) 000 icw4(7:5) 000 icw4(3:2) 00 icw4(0) 0 ocw2(4:3) 00 ocw3(7) 0 ocw3(5) reflects bit 6 ocw3(4:3) 01
intel ? 631xesb/632xesb i/o controller hub datasheet 211 functional description 5.15.9.3 read only registers with write paths in alt access mode the registers described in ta b l e 5 - 5 5 have write paths to them in alt access mode. software restores these values after returning from a powered down state. these registers must be handled special by software. when in normal mode, writing to the base address/count register also writes to the current address/count register. therefore, the base address/count must be written first, then the part is put into alt access mode and the current address/count register is written. 5.15.10 system power supplies, planes, and signals 5.15.10.1 power plane control with slp_s3#, slp_s4#, and slp_s5# the usage of slp_s3# and slp_s4# depends on whether the platform is configured for s3-hot and s3-cold. ? s3-hot: the slp_s3# output signal is used to cut power only to the processor and to stop system clocks. ? s3-cold: the slp_s3# output signal can be used to cut power to the system core supply, since it goes active only for the str state (typically mapped to acpi s3). power must be maintained to the intel ? 631xesb/632xesb i/o controller hub resume well, and to any other circuits that need to generate wake signals from the str state. cutting power to the core may be done by way of the power supply, or by external fets to the motherboard. the slp_s4# or slp_s5# output signal can be used to cut power to the system core supply, as well as power to the system memory, since the context of the system is saved on the disk. cutting power to the memory may be done by way of the power supply, or by external fets to the motherboard. in systems set up for s3-hot, the slp_s4# is also used to kill power to the subsystems that are powered during the s3- hot state. the slp_s4# output signal is used to remove power to additional subsystems that are powered during slp_s3#. slp_s5# output signal can be used to cut power to the system core supply, as well as power to the system memory, since the context of the system is saved on the disk. cutting power to the memory may be done by way of the power supply, or by external fets to the motherboard. 5.15.10.2 slp_s4# and suspend-to-ram sequencing the system memory suspend voltage regulator is controlled by the glue logic. the slp_s4# signal should be used to remove power to system memory rather than the slp_s5# signal. the slp_s4# logic in the intel ? 631xesb/632xesb i/o controller hub provides a mechanism to fully cycle the power to the dram and/or detect if the power is not cycled for a minimum time. table 5-55. register write accesses in alt access mode i/o address register write value 08h dma status register for channels 0?3. d0h dma status register for channels 4?7.
212 intel ? 631xesb/632xesb i/o controller hub datasheet functional description note: to utilize the minimum dram power-down feature that is enabled by the slp_s4# assertion stretch enable bit (d31:f0:a4h bit 3), the dram power must be controlled by the slp_s4# signal. 5.15.10.3 pwrok signal the pwrok input should go active based on the core supply voltages becoming valid. pwrok must not go high until at least 99 ms after the power is guaranteed valid. this is required to meet the 100ms delay from valid power to pltrst# deassertion in the pci 2.3 specification. 1. sysreset# is recommended for implementing the system reset button. this saves external logic that is needed if the pwrok input is used. additionally, it allows for better handling of the smbus and processor resets, and avoids improperly reporting power failures. 2. if a design has an active-low reset button electrically anded with the pwrok signal from the power supply and the processor?s voltage regulator module the intel ? 631xesb/632xesb i/o controller hub pwrok_flr bit will be set. the intel ? 631xesb/632xesb i/o controller hub treats this internally as if the rsmrst# signal had gone active. however, it is not treated as a full power failure. if pwrok goes inactive and then active (but rsmrst# stays high), then the intel ? 631xesb/632xesb i/o controller hub reboots (regardless of the state of the afterg3 bit). if the rsmrst# signal also goes low before pwrok goes high, then this is a full power failure, and the reboot policy is controlled by the afterg3 bit. 3. pwrok and rsmrst# are sampled using the rtc clock. therefore, low times that are less than one rtc clock period may not be detected by the intel ? 631xesb/ 632xesb i/o controller hub. 4. in the case of true pwrok failure, pwrok goes low first before the vrmpwrgd. 5. if the pwrok input is used to implement the system reset button, the intel ? 631xesb/632xesb i/o controller hub does not provide any mechanism to limit the amount of time that the processor is held in reset. the platform must externally guarantee that maximum reset assertion specs are met. 5.15.10.4 cpupwrgd signal this signal is connected to the processor?s vrm by way of the vrmpwrgd signal and is internally anded with the pwrok signal that comes from the system power supply. 5.15.10.5 vrmpwrgd signal vrmpwrgd is an input from the regulator indicating that all of the outputs from the regulator are on and within specification. vr mpwrgd may go active before or after the pwrok from the main power supply. intel ? 631xesb/632xesb i/o controller hub has no dependency on the order in which these two signals go active or inactive. 5.15.10.6 controlling leakage and power consumption during low-power states to control leakage in the system, various signals tri-state or go low during some low- power states. general principles: ? all signals going to powered down planes (either internally or externally) must be either tri-stated or driven low.
intel ? 631xesb/632xesb i/o controller hub datasheet 213 functional description ? signals with pull-up resistors should not be low during low-power states. this is to avoid the power consumed in the pull-up resistor. ? buses should be halted (and held) in a known state to avoid a floating input (perhaps to some other device). floating inputs can cause extra power consumption. based on the above principles, the following measures are taken: ? during s3 (str), all signals attached to powered down planes are tri-stated or driven low. 5.15.11 clock generators the clock generator is expected to provide the frequencies shown in ta bl e 5 - 5 6 . 5.15.12 legacy power manageme nt theory of operation instead of relying on acpi software, legacy power management uses bios and various hardware mechanisms. the scheme relies on the concept of detecting when individual subsystems are idle, detecting when the whole system is idle, and detecting when accesses are attempted to idle subsystems. 5.16 system management (d31:f0) the intel ? 631xesb/632xesb i/o controller hub provides various functions to make a system easier to manage and to lower the total cost of ownership (tco) of the system. features and functions can be augmented by way of external a/d converters and gpio, as well as an external microcontroller. the following features and functions are supported by intel ? 631xesb/632xesb i/o controller hub: ? 1st timer to generate smi# after programmable time ? 1st timeout causes smi#. allows for smm-based recovery from os lockup. ? os-based software agent accesses intel ? 631xesb/632xesb i/o controller hub to periodically reload timer. ? ability for os to generate smi# ? call-back from os to tco code in smm handler. table 5-56. intel ? 631xesb/632xesb i/o controller hub clock inputs clock domain frequency source usage clk100 100 mhz differential main clock generator used by sata controller. stopped in s3 ~ s5 based on slp_s3# assertion. pciclk 33 mhz main clock generator free-running pci clock to intel ? 631xesb/632xesb i/o controller hub. stopped in s3 ~ s5 based on slp_s3# assertion. clk48 48 mhz main clock generator used by usb controllers and intel high definition audio controller. stopped in s3 ~ s5 based on slp_s3# assertion. clk14 14.318 mhz main clock generator used by acpi timers. stopped in s3 ~ s5 based on slp_s3# assertion. acz_bit_clk 12.288 mhz ac?97 codec ac-link. control policy is determined by the clock source. note: becomes clock output when intel high definition audio is enabled.
214 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ? 2nd hard coded timeout to generate reboot ? used only after 1st timeout occurs ? 2nd timeout allows for automatic system ?reset and reboot? if hardware error detected. various system states are preserved by way of this special reset to allow for possible error detection and correction. ? reset associated with ?reboot? may attempt to preserve some registers for diagnostic purposes. ? smi# handler must reload the main timer within 2.4 seconds to prevent the 2nd timer from causing a ?reboot? (timeout during smi is assumed as broken cpu or stuck hardware). ? option to prevent reset if 2nd timeout occurs. ? ability to detect ?broken? cpu: ? detects if processor fails to restart after it has been reset. ? if cpu failure detected, option to pulse a gpio or send smbus message. the smbus message can be used to indicate to an external d110 lan controller to send a distress message. the gpio can control an led with optional blink. ? ability to handle various errors (such as ecc errors) indicated by the mch ? can generate smi# or tco interrupt. ? intruder detect input if the system cover is removed ? can generate tco interrupt or smi# ? ability for tco messages to coexist with standard smbus devices ? detection of bad fwh programming. done by checking that data on the first read is not ffh ? based on cape lookout asf (clasf) core 5.16.1 theory of operation the system management functions are designed to allow the system to diagnose failing subsystems. an industry term, ?functionally replaceable units? (frus), will be used throughout this document, although the subsystem may not technically be a fru. each fru, and the method to detect its failure, will be discussed below. the intent of this logic is that some of the system management functionality be provided without the aid of an external microcontroller. the intel ? 631xesb/632xesb i/o controller hub?s system management logic allows for diagnostic and recovery software to be distributed between an smi handler and os- based code. the handling methods between the smi handler and os are also discussed. 5.16.1.1 detecting a doa cpu or system a cpu may fail to reset if it has been inserted incorrectly, is somehow damaged (that is, due to vibrational stress), if the chipset itself is not working properly, or if the cpu is missing. after the chipset attempts to reset the cpu, the cpu is expected to fetch its first instruction. if it fails to do so, the chipset will detect this because the tco timer will timeout twice. if tco reboots are not enabled, then intel ? 631xesb/632xesb i/o controller hubs will either:
intel ? 631xesb/632xesb i/o controller hub datasheet 215 functional description a. the smlink will send out the first 8 bits of the message. after the 8th bit, the logic will stall because there is no integrated lan controller to send the ack. the logic will then abort the transfer. external logic can monitor the toggling and use that to drive an led. b. if an external lan controller is connected: send the appropriate message to the external lan controller. if tco reboots are enabled, then intel ? 631xesb/632xesb i/o controller hub attempts to asserts pcirst# to reboot the system. note: 1. if the no-reboot bit (d31:f0:offset d4:bit 1) is set (no reboots are intended) and second_to_sts bit (tco i/o offset 06h, bit 1) is set and doacpu_sts bit (tco i/o offset 06h, bit 2) is set, the intel ? 631xesb/632xesb i/o controller hub will indicate this in the tco message by setting the cpu missing bit in the message. 2. if the no-reboot bit (d31:f0:offset d4:bit 1) is not set (reboots intended and second_to_sts bit tco i/o offset 06h, bit 1) is set, then intel ? 631xesb/ 632xesb i/o controller hub will attempt to reboot. after the reboot, the second_to_sts bit will still be set. if the cpu fails to fetch the first instruction, the doa_cpu_sts bit is set, and when the tco timer times out (actually for the third time, the first two caused the second_to_sts bit to be set), then intel ? 631xesb/632xesb i/o controller hub sets the cpu missing event bit for the tco message. 5.16.1.2 handling an os lockup under some conditions, the os may lock up. to handle this, the tco timer is used with the following algorithm: 1. bios programs the tco timer, by way of the tco_tmr register with an initial value. 2. an os-based software agent periodically writes to the tco_rld register to reload the timer and keep it from generating the smi#. the software agent can read the tco_rld register to see if it is close to timing out, and possibly determine if the time-out should be increased. the os can also modify the values in the tco_tmr register.3. if the timer reaches 0, an smi# can be generated. this should occur only if the os was not able to reload the timer. it is assumed that the os will not be able to reload the timer if it has locked up. 3. upon generating the smi#, the tco timer automatically reloads with the default value of 04h and start counting down. 4. the smi handler can then: a. read the timeout bit in the tco_sts register to check that the smi# was caused by the tco timer. and, the smi handler should also clear the timeout bit. b. write to the tco_rld register to reload the timer to make sure the tco timer does not reach 0 again. c. attempt to recover. may need to periodically reload the tco timer. the exact recovery algorithm will be system-specific. note: if the smi handler was not able to clear the timeout bit and write to the tco_rld register, the timer will reach zero a second time approximately 2.4 seconds later. at that point, the hardware is assumed to be locked up, and the timer will read 0 a second
216 intel ? 631xesb/632xesb i/o controller hub datasheet functional description time, which causes the second_to_sts bit to be set. at that point the logic will reset the platform if the reboots are enabled. 5.16.1.3 handling a cpu or other hardware lockup if after the timeout smi is generated, and the tco timer again reaches 0, and reboots are enabled, the system management logic will reset (and reboot) the system. this would be in the case where the cpu or other system hardware is locked up. during every boot, bios should read the second_to_sts bit in the tco_sts register to see if this is normal boot or a reboot due to the timeout. the bios may also check the os_policy bits to see if it should try another boot or shutdown. 5.16.1.4 handling an intruder the intel ? 631xesb/632xesb i/o controller hub has an input signal, intruder#, that can be attached to a switch that is activated by the system?s case being open. this input has a two rtc clock debounce. if intruder# goes active (after the debouncer), this will set the intrd_det bit in the tco_sts register. the intrd_sel bits in the tco_cnt register can enable the intel ? 631xesb/632xesb i/o controller hub to cause an smi# or interrupt. the bios or interrupt handler can then cause a transition to the s5 state by writing to the slp_en bit. the software can also directly read the status of the intruder# signal (high or low) by clearing and then reading the intrd_det bit. this allows the signal to be used as a gpi if the intruder function is not required. if the intruder# signal goes inactive some point after the intrd_det bit is written as a 1, then the intrd_det signal will go to a 0 when intruder# input signal goes inactive. note that this is slightly different than a classic sticky bit, since most sticky bits would remain active indefinitely when the signal goes active and would immediately go inactive when a 1 is written to the bit. note: the intrd_det bit resides in the intel ? 631xesb/632xesb i/o controller hub?s rtc well, and is set and cleared synchronously with the rtc clock. thus, when software attempts to clear intrd_det (by writing a 1 to the bit location) there may be as much as two rtc clocks (about 65 s) delay before the bit is actually cleared. also, the intruder# signal should be asserted for a minimum of 1 ms to guarantee that the intrd_det bit will be set. note: if the intruder# signal is still active when software attempts to clear the intrd_det bit, the bit remains set and the smi is generated again immediately. the smi handler can clear the intrd_sel bits to avoid further smis. however, if the intruder# signal goes inactive and then active again, there will not be further smis, since the intrd_sel bits would select that no smi# be generated. 5.16.1.5 handling a potentially failing power supply it may be possible to detect that a power supply may fail in the near future by monitoring its voltages for fluctuations. to support such an application, external a/ds with programmable thresholds could be included by way of smbus/i 2 c. upon receiving the smbus/i 2 c message, intel ? 631xesb/632xesb i/o controller hub can generate an smi or interrupt. the smi handler (or os-based extension) could then attempt to send a message before the power completely fails. another option would be to build an a/d into the power supply itself. another signal, other than pwrok, could report that the power supply might soon fail.
intel ? 631xesb/632xesb i/o controller hub datasheet 217 functional description 5.16.1.6 detecting improper firmware hub programming the intel ? 631xesb/632xesb i/o controller hub can detect the case where the firmware hub is not programmed. this results in the first instruction fetched to have a value of ffh. if this occurs, the intel ? 631xesb/632xesb i/o controller hub sets the bad_bios bit, which can then be reported by way of the heartbeat and event reporting using an external, alert on lan* enabled lan controller (see section 5.16.2 ). 5.16.2 heartbeat and event reporting by way of smbus the intel ? 631xesb/632xesb i/o controller hub integrated lan controller supports asf heartbeat and event reporting functionality. this allows the integrated lan controller to report messages to a network management console without the aid of the system processor. this is crucial in cases where the processor is malfunctioning or cannot function due to being in a low-power state. all heartbeat and event messages are sent on the smbus interface. this allows an external lan controller to act upon these messages if the internal lan controller is not used. the basic scheme is for the intel ? 631xesb/632xesb i/o controller hub integrated lan controller to send a prepared ethernet message to a network management console. the prepared message is stored in the non-volatile eeprom that is connected to the intel ? 631xesb/632xesb i/o controller hub. messages are sent by the lan controller either because a specific event has occurred, or they are sent periodically (also known as a heartbeat). the event and heartbeat messages have the exact same format. the event messages are sent based on events occurring. the heartbeat messages are sent every 30 to 32 seconds. when an event occurs, the intel ? 631xesb/632xesb i/o controller hub sends a new message and increments the seq[3:0] field. for heartbeat messages, the sequence number does not increment. the following rules/steps apply if the system is in a g0 state and the policy is for the intel ? 631xesb/632xesb i/o controller hub to reboot the system after a hardware lockup: 1. on detecting the lockup, the second_to_sts bit is set. the intel ? 631xesb/ 632xesb i/o controller hub may send up to 1 event message to the lan controller. the intel ? 631xesb/632xesb i/o controller hub then attempts to reboot the processor. 2. if the reboot at step 1 is successful then the bios should clear the second_to_sts bit. this prevents any fu rther heartbeats from being sent. the bios may then perform addition recovery/boot steps. (see note 2, below.) 3. if the reboot attempt in step 1 is not successful, the timer will timeout a third time. at this point the system has locked up and was unsuccessful in rebooting. the intel ? 631xesb/632xesb i/o controller hub does not attempt to automatically reboot again. the intel ? 631xesb/632xesb i/o controller hub starts sending a message every heartbeat period (30?32 seconds). the heartbeats continue until some external intervention occurs (reset, power failure, and so forth.). 4. after step 3 (unsuccessful reboot after third timeout), if the user does a power button override, the system goes to an s5 state. the intel ? 631xesb/632xesb i/o controller hub continues sending the messages every heartbeat period.
218 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5. after step 4 (power button override after unsuccessful reboot) if the user presses the power button again, the system should wake to an s0 state and the processor should start executing the bios. 6. if step 5 (power button press) is successful in waking the system, the intel ? 631xesb/632xesb i/o controller hub continues sending messages every heartbeat period until the bios clears the second_to_sts bit. (see note 2) 7. if step 5 (power button press) is unsuccessful in waking the system, the intel ? 631xesb/632xesb i/o controller hub continues sending a message every heartbeat period. the intel ? 631xesb/632xesb i/o controller hub does not attempt to automatically reboot again. the intel ? 631xesb/632xesb i/o controller hub starts sending a message every heartbeat period (30?32 seconds). the heartbeats continue until some external intervention occurs (reset, power failure, and so forth.). (see note 3) 8. after step 3 (unsuccessful reboot after third timeout), if a reset is attempted (using a button that pulses pwrok low or by way of the message on the smbus slave i/ f), the intel ? 631xesb/632xesb i/o controller hub attempts to reset the system. 9. after step 8 (reset attempt) if the reset is successful, the bios is run. the intel ? 631xesb/632xesb i/o controller hub continues sending a message every heartbeat period until the bios clears the second_to_sts bit. (see note 2) 10. after step 8 (reset attempt), if the reset is unsuccessful, the intel ? 631xesb/ 632xesb i/o controller hub continues sending a message every heartbeat period. the intel ? 631xesb/632xesb i/o controller hub does not attempt to reboot the system again without external intervention. (see note 3) the following rules/steps apply if the system is in a g0 state and the policy is for the intel ? 631xesb/632xesb i/o controller hub to not reboot the system after a hardware lockup. 1. on detecting the lockup the second_to_sts bit is set. the intel ? 631xesb/ 632xesb i/o controller hub sends a message with the watchdog (wd) event status bit set (and any other bits that must also be set). this message is sent as soon as the lockup is detected, and is sent with the next (incremented) sequence number. 2. after step 1, the intel ? 631xesb/632xesb i/o controller hub sends a message every heartbeat period until some external intervention occurs. 3. rules/steps 4?10 apply if no user intervention (resets, power button presses, smbus reset messages) occur after a third timeout of the watchdog timer. if the intervention occurs before the third timeout, then jump to rule/step 11. 4. after step 3 (third timeout), if the user does a power button override, the system goes to an s5 state. the intel ? 631xesb/632xesb i/o controller hub continues sending heartbeats at this point. 5. after step 4 (power button override), if the user presses the power button again, the system should wake to an s0 state and the processor should start executing the bios. 6. if step 5 (power button press) is successful in waking the system, the intel ? 631xesb/632xesb i/o controller hub continues sending heartbeats until the bios clears the second_to_sts bit. (see note 2) 7. if step 5 (power button press) is unsuccessful in waking the system, the intel ? 631xesb/632xesb i/o controller hub continues sending heartbeats. the intel ? 631xesb/632xesb i/o controller hub does not attempt to reboot the system again until some external intervention occurs (reset, power failure, and so forth.). (see note 3)
intel ? 631xesb/632xesb i/o controller hub datasheet 219 functional description 8. after step 3 (third timeout), if a reset is attempted (using a button that pulses pwrok low or by way of the message on the smbus slave i/f), the intel ? 631xesb/632xesb i/o controller hub attempts to reset the system. 9. if step 8 (reset attempt) is successful, the bios is run. the intel ? 631xesb/ 632xesb i/o controller hub continues sending heartbeats until the bios clears the second_to_sts bit. (see note 2) 10. if step 8 (reset attempt), is unsuccessful, the intel ? 631xesb/632xesb i/o controller hub continues sending heartbeats. the intel ? 631xesb/632xesb i/o controller hub does not attempt to reboot the system again without external intervention. note: a system that has locked up and can not be restarted with power button press is probably broken (bad power supply, short circuit on some bus, and so forth.) 11. this and the following rules/steps apply if the user intervention (power button press, reset, smbus message, and so forth.) occur prior to the third timeout of the watchdog timer. 12. after step 1 (second timeout), if the user does a power button override, the system goes to an s5 state. the intel ? 631xesb/632xesb i/o controller hub continues sending heartbeats at this point. 13. after step 12 (power button override), if the user presses the power button again, the system should wake to an s0 state and the processor should start executing the bios. 14. if step 13 (power button press) is successful in waking the system, the intel ? 631xesb/632xesb i/o controller hub continues sending heartbeats until the bios clears the second_to_sts bit. (see note 2) 15. if step 13 (power button press) is unsuccessful in waking the system, the intel ? 631xesb/632xesb i/o controller hub continues sending heartbeats. the intel ? 631xesb/632xesb i/o controller hub does not attempt to reboot the system again until some external intervention occurs (reset, power failure, and so forth.). (see note 3) 16. after step 1 (second timeout), if a reset is attempted (using a button that pulses pwrok low or by way of the message on the smbus slave i/f), the intel ? 631xesb/632xesb i/o controller hub attempts to reset the system. 17. if step 16 (reset attempt) is successful, the bios is run. the intel ? 631xesb/ 632xesb i/o controller hub continues sending heartbeats until the bios clears the second_to_sts bit. (see note 2) 18. if step 16 (reset attempt), is unsuccessful, the intel ? 631xesb/632xesb i/o controller hub continues sending heartbeats. the intel ? 631xesb/632xesb i/o controller hub does not attempt to reboot the system again without external intervention. (see note 3) if the system is in a g1 (s1?s4) state, the intel ? 631xesb/632xesb i/o controller hub sends a heartbeat message every 30?32 seconds. if an event occurs prior to the system being shutdown, the intel ? 631xesb/632xesb i/o controller hub immediately sends an event message with the next incremented sequence number. after the event message, the intel ? 631xesb/632xesb i/o controller hub resumes sending heartbeat messages. note: a system that has locked up and can not be restarted with power button press is assumed to have broken hardware (bad power supply, short circuit on some bus, and so forth.). the following rules will apply if the system is in a g1 (s1-s4) state:
220 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ?intel ? 631xesb/632xesb i/o controller hub will send a heartbeat message every heartbeat period (30-32 seconds). ? if an event occurs prior to the system being shut down, the intel ? 631xesb/ 632xesb i/o controller hub will immediately send another event message with the next (incremented) sequence number. ? after the event, it will resume sending heartbeat messages. note: normally, the intel ? 631xesb/632xesb i/o controller hub does not send heartbeat messages while in the g0 state (except in the case of a lockup). however, if a hardware event (or heartbeat) occurs just as the system is transitioning into a g0 state, the hardware continues to send the message even though the system is in a g0 state (and the status bits may indicate this). these messages are sent by way of the smbus. the intel ? 631xesb/632xesb i/o controller hub abides by the smbus rules associated with collision detection. it delays starting a message until the bus is idle, and detects collisions. if a collision is detected the intel ? 631xesb/632xesb i/o controller hub waits until the bus is idle, and tries again. warning: it is important the bios clears the second_to_sts bit, as the alerts interfere with the lan device driver from working properly. the alerts reset part of the lan controller and would prevent an operating system?s device driver from sending or receiving some messages. note: a spurious alert could occur in the following sequence: ? the processor has initiated an alert using the send_now bit ? during the alert, the thrm#, intruder# or gpi[11] changes state ? the system then goes to a non-s0 state. once the system transitions to the non-s0 state, it may send a single alert with an incremental sequence number. note: an inaccurate alert message can be generated in the following scenario ? the system successfully boots after a second watchdog timeout occurs. ? pwrok goes low (typically due to a reset button press) or a power button override occurs (before the second_to_sts bit is cleared). ? an alert message indicating that the processor is missing or locked up is generated with a new sequence number. ta b l e 5 - 5 7 shows the data included in the alert on lan messages. table 5-57. heartbeat message data (sheet 1 of 2) field comment cover tamper status 1 = this bit is set if the intruder detect bit is set (intrd_det). temp event status 1 = this bit is set if the intel ? 631xesb/632xesb i/o controller hub therm# input signal is asserted. processor missing event status 1 = this bit is set if the processor failed to fetch its first instruction. tco timer event status 1 = this bit is set when the tco timer expires. software event status 1 = this bit is set when software writes a 1 to the send_now bit. unprogrammed firmware hub event status 1 = first bios fetch returned a value of ffh, indicating that the firmware hub has not yet been programmed (still erased).
intel ? 631xesb/632xesb i/o controller hub datasheet 221 functional description 5.17 ide controller (d31:f1) the intel ? 631xesb/632xesb i/o controller hub ide controller features one sets of interface signals (primary channel) that can be enabled, tri-stated or driven low. the ide interfaces of the intel ? 631xesb/632xesb i/o controller hub can support several types of data transfers: ? programmed i/o (pio): processor is in control of the data transfer. ? 8237 style dma: dma protocol that resembles the dma on the isa bus, although it does not use the 8237 in the intel ? 631xesb/632xesb i/o controller hub. this protocol off loads the processor from moving data. this allows higher transfer rate of up to 16 mb/s. ? ultra ata/33: dma protocol that redefines signals on the ide cable to allow both host and target throttling of data and transfer rates of up to 33 mb/s. ? ultra ata/66: dma protocol that redefines signals on the ide cable to allow both host and target throttling of data and transfer rates of up to 66 mb/s. ? ultra ata/100: dma protocol that redefines signals on the ide cable to allow both host and target throttling of data and transfer rates of up to 100 mb/s. 5.17.1 pio transfers the intel ? 631xesb/632xesb i/o controller hub ide controller includes both compatible and fast timing modes. the fast timing modes can be enabled only for the ide data ports. all other transactions to the ide registers are run in single transaction mode with compatible timings. up to two ide devices may be attached to the ide connector (drive 0 and drive 1). the ide_timp and ide_tims registers permit different timing modes to be programmed for drive 0 and drive 1 of the same connector. the ultra ata/33/66/100 synchronous dma timing modes can also be applied to each drive by programming the ide i/o configuration register and the synchronous dma control and timing registers. when a drive is enabled for synchronous dma mode operation, the dma transfers are executed with the synchronous dma timings. the pio transfers are executed using compatible timings or fast timings if also enabled. gpio status 1 = this bit is set when gpi[11] signal is high. 0 = this bit is cleared when gpi[11] signal is low. an event message is triggered on an transition of gpi[11]. seq[3:0] this is a sequence number. it initially is 0, and increments each time the intel ? 631xesb/632xesb i/o controller hub sends a new message. upon reaching 1111, the sequence number rolls over to 0000. msb (seq3) sent first. system power state 00 = g0, 01 = g1, 10 = g2, 11 = pre-boot. msb sent first message1 will be the same as the message1 register. msb sent first. message2 will be the same as the message2 register. msb sent first. wdstatus will be the same as the wdstatus register. msb sent first. table 5-57. heartbeat message data (sheet 2 of 2) field comment
222 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.17.1.1 pio ide timing modes ide data port transaction latency consists of startup latency, cycle latency, and shutdown latency. startup latency is incurred when a pci master cycle targeting the ide data port is decoded and the da[2:0] and csxx# lines are not set up. startup latency provides the setup time for the da[2:0] and csxx# lines prior to assertion of the read and write strobes (dior# and diow#). cycle latency consists of the i/o command strobe assertion length and recovery time. recovery time is provided so that transactions may occur back-to-back on the ide interface (without incurring startup and shutdown latency) without violating minimum cycle periods for the ide interface. the command strobe assertion width for the enhanced timing mode is selected by the ide_tim register and may be set to 2, 3, 4, or 5 pci clocks. the recovery time is selected by the ide_tim register and may be set to 1, 2, 3, or 4 pci clocks. if iordy is asserted when the initial sample point is reached, no wait-states are added to the command strobe assertion length. if iordy is negated when the initial sample point is reached, additional wait-states are added. since the rising edge of iordy must be synchronized, at least two additional pci clocks are added. shutdown latency is incurred after outstanding scheduled ide data port transactions (either a non-empty write post buffer or an outstanding read prefetch cycles) have completed and before other transactions can proceed. it provides hold time on the da[2:0] and csxx# lines with respect to the read and write strobes (dior# and diow#). shutdown latency is two pci clocks in duration. the ide timings for various transaction types are shown in ta b l e 5 - 5 8 . 5.17.1.2 iordy masking the iordy signal can be ignored and assumed asserted at the first iordy sample point (isp) on a drive by drive basis by way of the idetim register. 5.17.1.3 pio 32-bit ide data port accesses a 32-bit pci transaction run to the ide data address (01f0h primary) results in two back to back 16-bit transactions to the ide data port. the 32-bit data port feature is enabled for all timings, not just enhanced timing. for compatible timings, a shutdown and startup latency is incurred between the two, 16-bit halves of the ide transaction. this guarantees that the chip selects are deasserted for at least two pci clocks between the two cycles. 5.17.1.4 pio ide data port prefetching and posting the intel ? 631xesb/632xesb i/o controller hub can be programmed by way of the idetim registers to allow data to be posted to and prefetched from the ide data ports. table 5-58. ide transaction timings (pci clocks) ide transaction type startup latency iordy sample point (isp) recovery time (rct) shutdown latency non-data port compatible 4 11 22 2 data port compatible 3 6 14 2 fast timing mode 2 2?5 1?4 2
intel ? 631xesb/632xesb i/o controller hub datasheet 223 functional description data prefetching is initiated when a data port read occurs. the read prefetch eliminates latency to the ide data ports and allows them to be performed back to back for the highest possible pio data transfer rates. the first data port read of a sector is called the demand read. subsequent data port reads from the sector are called prefetch reads. the demand read and all prefetch reads much be of the same size (16 or 32 bits). data posting is performed for writes to the ide data ports. the transaction is completed on the pci bus after the data is received by the intel ? 631xesb/632xesb i/o controller hub. the intel ? 631xesb/632xesb i/o controller hub then runs the ide cycle to transfer the data to the drive. if the intel ? 631xesb/632xesb i/o controller hub write buffer is non-empty and an unrelated (non-data or opposite channel) ide transaction occurs, that transaction will be stalled until all current data in the write buffer is transferred to the drive. 5.17.2 bus master function the intel ? 631xesb/632xesb i/o controller hub can act as a pci bus master on behalf of an ide device. one pci bus master channel is provided for the ide connector. by performing the ide data transfer as a pci bus master, the intel ? 631xesb/632xesb i/ o controller hub off-loads the processor and improves system performance in multitasking environments. both devices attached to the connector can be programmed for bus master transfers, but only one device can be active at a time. 5.17.2.1 physical region descriptor format the physical memory region to be transferred is described by a physical region descriptor (prd). the prds are stored sequentially in a descriptor table in memory. the data transfer proceeds until all regions described by the prds in the table have been transferred. descriptor tables must not cross a 64-kb boundary. each prd entry in the table is 8 bytes in length. the first 4 bytes specify the byte address of a physical memory region. this memory region must be dword-aligne d and must not cross a 64-kb boundary. the next two bytes specify the size or transfer count of the region in bytes (64-kb limit per region). a value of 0 in these two bytes indicates 64-kb (thus the minimum transfer count is 1). if bit 7 (eot) of the last byte is a 1, it indicates that this is the final prd in the descriptor table. bus master operation terminates when the last descriptor has been retired. when the bus master ide controller is reading data from the memory regions, bit 1 of the base address is masked and byte enables are asserted for all read transfers. when writing data, bit 1 of the base address is not masked and if set, will cause the lower word byte enables to be deasserted for the first dword transfer. the write to pci typically consists of a 32-byte cache line. if valid data ends prior to end of the cache line, the byte enables will be deasserted for invalid data. the total sum of the byte counts in every prd of the descriptor table must be equal to or greater than the size of the disk transfer request. if greater than the disk transfer request, the driver must terminate the bus master transaction (by setting bit 0 in the bus master ide command register to 0) when the drive issues an interrupt to signal transfer completion.
224 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.17.2.2 bus master ide timings the timing modes used for bus master ide transfers are identical to those for pio transfers. the dma timing enable only bits in ide timing register can be used to program fast timing mode for dma transactions only. this is useful for ide devices whose dma transfer timings are faster than its pio transfer timings. the ide device dma request signal is sampled on the same pci clock that dior# or diow# is deasserted. if inactive, the dma acknowledge signal is deasserted on the next pci clock and no more transfers take place until dma request is asserted again. 5.17.2.3 interrupts the intel ? 631xesb/632xesb i/o controller hub can generate interrupts based upon a signal coming from the pata device, or due to the completion of a prd with the ?i? bit set. the interrupt is edge triggered and active high. the pata host controller generates ideirq. when the intel ? 631xesb/632xesb i/o controller hub ide controller is operating independently from the sata controller (d31:f2), ideirq will generate irq14. when operating in conjunction with the sata controller (combined mode), ide interrupts will still generate ideirq, but this may in turn generate either irq14 or irq15, depending upon the value of the map.mv (d31:f2:90h:bits 1:0) register. when in combined mode and the sata controller is emulating the logical secondary channel (map.mv = 1h), the pata channel will emulate the logical primary channel and ideirq will generate irq14. conversely, if the sata controller in combined mode is emulating the logical primary channel (map.mv=2h), ideirq will generate irq15. note: ide interrupts cannot be communicated through pci devices or the serial stream. 5.17.2.4 bus master ide operation to initiate a bus master transfer between memory and an ide device, the following steps are required: 1. software prepares a prd table in system memory. the prd table must be dword aligned and must not cross a 64-kb boundary. 2. software provides the starting address of the prd table by loading the prd table pointer register. the direction of the data transfer is specified by setting the read/ write control bit. the interrupt bit and error bit in the status register are cleared. 3. software issues the appropriate dma transfer command to the disk device. figure 5-18. physical region descriptor table entry eot reserved byte count [15:1] memory region physical base address [31:1] byte 3 byte 2 byte 1 byte 0 memory region main memory o o
intel ? 631xesb/632xesb i/o controller hub datasheet 225 functional description 4. the bus master function is engaged by so ftware writing a 1 to the start bit in the command register. the first entry in the prd table is fetched and loaded into two registers which are not visible by software, the current base and current count registers. these registers hold the current value of the address and byte count loaded from the prd table. the value in these registers is valid only when there is an active command to an ide device. 5. once the prd is loaded internally, the ide device will receive a dma acknowledge. 6. the controller transfers data to/from memory responding to dma requests from the ide device. the ide device and the host controller may or may not throttle the transfer several times. when the last data transfer for a region has been completed on the ide interface, the next descriptor is fetched from the table. the descriptor contents are loaded into the current base and current count registers. 7. at the end of the transfer, the ide device signals an interrupt. 8. in response to the interrupt, software resets the start/stop bit in the command register. it then reads the controller status followed by the drive status to determine if the transfer completed successfully. the last prd in a table has the end of list (eol) bit set. the pci bus master data transfers terminate when the physical region described by the last prd in the table has been completely transferred. the active bit in the status register is reset and the ddrq signal is masked. the buffer is flushed (when in the write state) or invalidated (when in the read state) when a terminal count condition exists; that is, the current region descriptor has the eol bit set and that region has been exhausted. the buffer is also flushed (write state) or invalidated (read state) when the interrupt bit in the bus master ide status register is set. software that reads the status regist er and finds the error bit reset, and either the active bit reset or the interrupt bit set, can be assured that all data destined for system memory has been transferred and that data is valid in system memory. ta bl e 5 - 5 9 describes how to interpret the interrupt and active bits in the status register after a dma transfer has started. 5.17.2.5 error conditions ide devices are sector based mass storage devices. the drivers handle errors on a sector basis; either a sector is transferred successfully or it is not. a sector is 512 bytes. table 5-59. interrupt/active bit interaction definition interrupt active description 0 1 dma transfer is in progress. no interrupt has been generated by the ide device. 1 0 the ide device generated an interrupt. the controller exhausted the physical region descriptors. this is the normal completion case where the size of the physical memory regions was equal to the ide device transfer size. 1 1 the ide device generated an interrupt. the controller has not reached the end of the physical memory regions. this is a valid completion case where the size of the physical memory regions was larger than the ide device transfer size. 0 0 this bit combination signals an error conditio n. if the error bit in the status register is set, then the controller has some problem transferring data to/from memory. specifics of the error have to be determin ed using bus-specific information. if the error bit is not set, then the prd's specified a smaller size than the ide transfer size.
226 intel ? 631xesb/632xesb i/o controller hub datasheet functional description if the ide device does not complete the transfer due to a hardware or software error, the command will eventually be stopped by the driver setting command start bit to 0 when the driver times out the disk transaction. information in the ide device registers help isolate the cause of the problem. if the controller encounters an error while doing the bus master transfers it will stop the transfer (that is, reset the active bit in the command register) and set the error bit in the bus master ide status register. the controller does not generate an interrupt when this happens. the device driver can use device specific information (pci configuration space status register and ide drive register) to determine what caused the error. whenever a requested transfer does not complete properly, information in the ide device registers (sector count) can be used to determine how much of the transfer was completed and to construct a new prd table to complete the requested operation. in most cases the existing prd table can be used to complete the operation. 5.17.3 ultra ata/100/66/33 protocol the intel ? 631xesb/632xesb i/o controller hub supports ultra ata/100/66/33 bus mastering protocol, providing support for a variety of transfer speeds with ide devices. ultra ata/33 provides transfers up to 33 mb/s, ultra ata/66 provides transfers at up to 44 mb/s or 66 mb/s, and ultra ata/100 can achieve read transfer rates up to 100 mb/s and write transfer rates up to 88.9 mb/s. the ultra ata/100/66/33 definition also incorporates a cyclic redundancy checking (crc-16) error checking protocol. 5.17.3.1 operation initial setup programming consists of enabling and performing the proper configuration of the intel ? 631xesb/632xesb i/o controller hub and the ide device for ultra ata/ 100/66/33 operation. for the intel ? 631xesb/632xesb i/o controller hub, this consists of enabling synchronous dma mode and setting up appropriate synchronous dma timings. when ready to transfer data to or from an ide device, the bus master ide programming model is followed. once programmed, the drive and intel ? 631xesb/ 632xesb i/o controller hub control the transfer of data by way of the ultra ata/100/ 66/33 protocol. the actual data transfer consists of three phases, a start-up phase, a data transfer phase, and a burst termination phase. the ide device begins the start-up phase by asserting dmarq signal. when ready to begin the transfer, the intel ? 631xesb/632xesb i/o controller hub asserts dmack# signal. when dmack# signal is asserted, the host controller drives cs0# and cs1# inactive, da0?da2 low. for write cycles, the intel ? 631xesb/632xesb i/o controller hub deasserts stop, waits for the ide device to assert dmardy#, and then drives the first data word and strobe signal. for read cycles, the intel ? 631xesb/632xesb i/o controller hub tri-states the dd lines, deasserts stop, and asserts dmardy#. the ide device then sends the first data word and strobe. the data transfer phase continues the burst transfers with the data transmitter (intel ? 631xesb/632xesb i/o controller hub ? writes, ide device ? reads) providing data and toggling strobe. data is transferred (latched by receiver) on each rising and falling edge of strobe. the transmitter can pause the burst by holding strobe high or low, resuming the burst by again toggling strobe. the receiver can pause the burst by deasserting dmardy# and resumes the transfers by asserting dmardy#. the intel ? 631xesb/632xesb i/o controller hub pauses a burst transaction to prevent an
intel ? 631xesb/632xesb i/o controller hub datasheet 227 functional description internal line buffer over or under flow condition, resuming once the condition has cleared. it may also pause a transaction if the current prd byte count has expired, resuming once it has fetched the next prd. the current burst can be terminated by either the transmitter or receiver. a burst termination consists of a stop request, st op acknowledge and transfer of crc data. the intel ? 631xesb/632xesb i/o controller hub can stop a burst by asserting stop, with the ide device acknowledging by deasserting dmarq. the ide device stops a burst by deasserting dmarq and the intel ? 631xesb/632xesb i/o controller hub acknowledges by asserting stop. the transmitter then drives the strobe signal to a high level. the intel ? 631xesb/632xesb i/o controller hub then drives the crc value onto the dd lines and deassert dmack#. the ide device latches the crc value on rising edge of dmack#. the intel ? 631xesb/632xesb i/o controller hub terminates a burst transfer if it needs to service the opposite ide channel, if a programmed i/o (pio) cycle is executed to the ide channel currently running the burst, or upon transferring the last data from the final prd. 5.17.4 ultra ata/33/66/100 timing the timings for ultra ata/33/66/100 modes are programmed by way of the synchronous dma timing register and the ide configuration register. different timings can be programmed for each drive in the system. the base clock frequency for each drive is selected in the ide configuration register. the cycle time (ct) and ready to pause (rp) time (defined as multiples of the base clock) are programmed in the synchronous dma timing register. the cy cle time represents the minimum pulse width of the data strobe (strobe) signal. the ready to pause time represents the number of base clock periods that the intel ? 631xesb/632xesb i/o controller hub waits from deassertion of dmardy# to the assertion of stop when it desires to stop a burst read transaction. note: the internal base clock for ultra ata/100 (mode 5) runs at 133 mhz, and the cycle time (ct) must be set for three base clocks. the intel ? 631xesb/632xesb i/o controller hub thus toggles the write strobe signal every 22.5 ns, transferring two bytes of data on each strobe edge. this means that the intel ? 631xesb/632xesb i/o controller hub performs mode 5 write transfers at a maximum rate of 88.9 mb/s. for read transfers, the read strobe is driven by the ata/100 device, and the intel ? 631xesb/632xesb i/o controller hub supports reads at the maximum rate of 100 mb/s. 5.17.5 ide swap bay to support a swap bay, the intel ? 631xesb/632xesb i/o controller hub allows the ide output signals to be tri-stated and input buffers to be turned off. this should be done prior to the removal of the drive. the output signals can also be driven low. this can be used to remove charge built up on the signals. configuration bits are included in the ide i/o configuration register, offset 54h in the ide pci configuration space. in an ide hot swap operation, an ide devi ce is removed and a new one inserted while the ide interface is powered down and the rest of the system is in a fully powered-on state (so). during an ide hot swap, if the operating system executes cycles to the ide interface after it has been powered down it will cause the intel ? 631xesb/632xesb i/o controller hub to hang the system that is waiting for iordy to be asserted from the drive. to correct this issue, the following bios procedures are required for performing an ide hot swap:
228 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 1. program ide sig_mode (configuration register at offset 54h) to 10b (drive low mode). 2. clear iordy sample point enable (bits 1 or 5 of ide timing reg.). this prevents the intel ? 631xesb/632xesb i/o controller hub from waiting for iordy assertion when the operating system accesses the ide device after the ide drive powers down, and ensures that 0s are always be returned for read cycles that occur during hot swap operation. warning: software should not attempt to control the outputs (either tri-state or driving low), while an ide transfer is in progress. unpredictable results could occur, including a system lockup. 5.17.6 smi trapping device 31:function 1: offset c0h (see section 22.1.26 ) contain control for generating smi# on accesses to the ide i/o spaces. these bits map to the legacy ranges (1f0? 1f7h and 3f6h). accesses to one of these ranges with the appropriate bit set causes the cycle to not be forwarded to the ide controller, and for an smi# to be generated. if an access to the bus-master ide registers occurs while trapping is enabled for the device being accessed, then the register is updated, an smi# is generated, and the device activity status bits (device 31:fun ction 1:offset c4h) ar e updated indicating that a trap occurred. 5.18 sata host controller (d31:f2) the intel ? 631xesb/632xesb i/o controller hub has an integrated sata host controller that supports independent dma operation on six ports and supports data transfer rates of up to 3.0 gb/s (300 mb/s). the sata host controller contains two modes of operation ? a legacy mode using i/o space, and an ahci mode using memory space. the memory space bit ghc.ae, set by software, indicates to hardware that ahci is being used. software must not implement code which mixes the use of legacy mode and ahci mode. when in combined function mode, where the sata function is used with pata, ahci mode is not used. software that uses legacy mode will not have ahci capabilities, and therefore will not set ghc.ae. 5.18.1 legacy operation in this mode of operation, software is performing i/o operations to the controller and sata devices. the sata controller is using the shadow registers as described in the sata specification, and performing master/slave operation on the ports. additionally, this mode of operation is used during combined mode, where the sata function is shared with pata. software must program the dev bit in the task file as its first operation before programming the rest of the transfer or setting the bus master registers. 5.18.1.1 standard ata emulation the intel ? 631xesb/632xesb i/o controller hub contains a set of registers that shadow the contents of the legacy ide registers. the behavior of the command and control block registers, pio, and dma data transfers, resets, and interrupts are all emulated.
intel ? 631xesb/632xesb i/o controller hub datasheet 229 functional description 5.18.1.2 48-bit lba operation the sata host controller supports 48-bit lba through the host-to-device register fis when accesses are performed by way of writes to the task file. the sata host controller will ensure that the correct data is put into the correct byte of the host-to-device fis. there are special considerations when reading from the task file to support 48-bit lba operation. software may need to read all 16-bits. since the registers are only 8 bits wide and act as a fifo, a bit must be set in the device/control register, which is at offset 3f6h for primary and 376h for secondary (or their native counterparts). if software clears bit 7 of the control register before performing a read, the last item written will be returned from the fifo. if software sets bit 7 of the control register before performing a read, the first item written will be returned from the fifo. 5.18.1.3 hot-plug operation dynamic hot-plug (for example, surprise removal) is not supported by the sata host controller. however, using the pcs register configuration bits and power management flows, a device can be powered down by software, and the port can then be powered off, allowing removal and insertion of a new device. note: this hot-plug operation requires board hardware (implementation specific), bios, and operating system support. 5.18.1.4 intel ? raid technology configuration the intel ? raid technology solution offers data striping for higher performance (raid level 0), alleviating disk bottlenecks by taking advantage of the independent dma engines that each sata port offers in the intel ? 631xesb/632xesb i/o controller hub. intel raid technology also offers mirroring for data security (raid level 1). there is no loss of pci resources (request/grant pair) or add-in card slot. intel raid technology functionality requires the following items: ?intel ? 631xesb/632xesb i/o controller hub ? intel raid technology option rom must be on the platform ?intel ? application accelerator raid edition drivers, most recent revision. ? two sata hard disk drives. intel raid technology is not available in the following configurations: ? the sata controller in compatible mode. 5.18.1.5 intel ? raid technology option rom the intel raid technology for sata option rom provides a pre-operating system user interface for the intel raid technology implementation and provides the ability for an intel raid technology volume to be used as a boot disk as well as to detect any faults in the intel raid technology volume(s) attached to the intel raid controller. 5.18.1.6 power management operation power management of the intel ? 631xesb/632xesb i/o controller hub sata controller and ports will cover operations of the host controller and the sata wire.
230 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.18.1.6.1 power state mappings sata devices may also have multiple power states. from parallel ata, three device states are supported through acpi. they are: ? d0 ? device is working and instantly available. ? d1 ? device enters when it receives a standby immediate command. exit latency from this state is in seconds. ? d3 ? from the sata device?s perspective, no different than a d1 state, in that it is entered by way of the standby immediate command. however, an acpi method is also called which will reset the device and then cut its power. each of these device states are subsets of the host controller?s d0 state. finally, sata defines three phy layer power states, which have no equivalent mappings to parallel ata. they are: ? phy ready ? phy logic and pll are both on and active. ? partial ? phy logic is powered, but in a reduced state. exit latency is no longer than 10 ns ? slumber ? phy logic is powered, but in a reduced state. exit latency can be up to 10 ms. since these states have much lower exit latency than the acpi d1 and d3 states, the sata controller defines these states as sub-states of the device d0 state. 5.18.1.6.2 power state transitions partial and slumber state entry/exit the partial and slumber states save interface power when the interface is idle. the sata controller defines phy layer powe r management (as performed by way of primitives) as a driver operation from the host side, and a device proprietary mechanism on the device side. the sata controller accepts device transition types, but does not issue any transitions as a host. all received requests from a sata device will be acked. figure 5-19. sata power states intel ? 631xesb/632xesb i/o controller hub sata controller = d0 device = d 3 power r esume latency device = d0 phy = ready device = d 1 phy = slumber phy = partial phy = off ( port disabled ) phy = slumber phy = off (port disabled ) phy = slumber phy = off (port disabled )
intel ? 631xesb/632xesb i/o controller hub datasheet 231 functional description when an operation is performed to the sata controller such that it needs to use the sata cable, the controller must check whether the link is in the partial or slumber states, and if so, must issue a com_wake to bring the link back online. similarly, the sata device must perform the same action. device d1, d3 states these states are entered after some period of time when software has determined that no commands will be sent to this device for some time. the mechanism for putting a device in these states does not involve any work on the host controller, other then sending commands over the interface to the device. the command most likely to be used in ata/atapi is the ?standby immediate? command. 5.18.1.7 sata interrupts ta bl e 5 - 6 0 summarizes interrupt behavior for msi and wire-modes. in the table ?bits? refers to the four possible interrupt bits in i/o space, which are: psts.prdis (offset 02h, bit 7), psts.i (offset 02h, bit 2), ssts.prdis (offset 0ah, bit 7), and ssts.i (offset 0ah, bit 2). 5.18.1.8 sata led the sataled# output is driven whenever the bsy bit is set in any sata port. the sataled# is an active-low open-collector output. when sataled# is low, the led should be active. when sataled# is tri-stated, the led should be inactive. 5.18.2 ahci operation the intel ? 631xesb/632xesb i/o controller hub provide hardware support for advanced host controller interface (ahci), a new programming interface for sata host controllers developed through a joint industry effort. ahci defines transactions between the sata controller and software and enables advanced performance and usability with sata. platforms supporting ahci may take advantage of performance features such as no master/slave designation for sata devices ? each device is treated as a master ? and hardware assisted na tive command queuing (ncq). ahci also provides usability enhancements such as hot-plug. ahci requires appropriate software support (for example, an ahci driver) and for some features, hardware support in the sata device or additional platform hardware. the intel ? 631xesb/632xesb i/o controller hub supports all of the mandatory features of the serial ata advanced host controller interface (ahci) specification, revision 1.0 and many optional features, such as hardware assisted native command table 5-60. sata msi vs. pci irq actions interrupt register wire-mode action msi action all bits are 0 wire inactive no action one or more bits set to 1 wire active send message one or more bits set to 1, new bit gets set to 1 wire active send message one or more bits set to 1, software clears some (but not all) bits wire active send message one or more bits set to 1, software clears all bits wire inactive no action software clears one or more bits, and one or more bits is set simultaneously wire active send message
232 intel ? 631xesb/632xesb i/o controller hub datasheet functional description queuing (ncq), aggressive power management, led indicator support, and hot-plug through the use of interlock switch support (additional platform hardware and software may be required depending upon the implementation). note: for reliable device removal notification while in ahci operation without the use of interlock switches (surprise removal), interface power management should be disabled for the associated port. see section 7.3.1 of the ahci specification for more information. 5.18.2.1 data transfer operation refer to chapter 5 of the ahci specification for details. 5.18.2.2 error reporting and recovery refer to chapter 6 of the ahci specification for details. 5.18.2.3 hot-plug operation refer to chapter 7 of the ahci specification for details. intel ? 631xesb/632xesb i/o controller hub supports hot-plug surprise removal notification. however hot-plug surprise removal notification (without an interlock switch) is mutually exclusive with the partial and slumber power management states. the following conceptual flows describe the different software initialization steps necessary to support surprise removal notification or power management. 5.18.2.3.1 per port software initialization to support surprise insertion and removal notification: 1. set pxsctl.ipm to 3h to disable both partial and slumber transitions invoked by the drive. 2. set pxcmd.alpe to 0 to disable aggressive power management by the hba. 3. set pxie.pce to 1 to enable interrupts for hot-plug insertions. 4. the pxis.pcs interrupt status bit indicates to software that a hot-plug insertion event occurred. 5. write a 1 to the pxserr.diag.x bit to clear it and the pxis.pcs bit. after a drive is detected on the port: 6. set the newly defined pxie.prce to 1 to enable interrupts for hot-plug removals. 7. issue the set features command to the drive to disable interface power management. 8. the newly defined pxis.prcs interrupt status bit indicates to software that a hot- plug removal event occurred. 9. set the pxie.prce to 0 to disable interrupts so that only the pxis.pcs bit will generate an insertion event interrupt. if this bit is left enabled two interrupts may be generated on the insertion event. 5.18.2.3.2 per port software initializati on to support partial and slumber power management: 1. set pxsctl.ipm to 0h to enable partial and slumber transitions for the hba port. 2. set pxcmd.alpe and pxcmd.asp appropriately based on aggressive power management policy.
intel ? 631xesb/632xesb i/o controller hub datasheet 233 functional description 3. set pxie.prce to 0 to disable interrupts when phyrdy changes state due to partial and slumber transitions. 4. during active operation pxssts.det = 3h indicates to software that the link is operational. 5.18.2.4 power management operation refer to chapter 8 of the ahci specification for details. 5.18.2.5 sata led driving capability in raid subsystems it is required to drive up to four output signals per device. these signals are: 1. activity: indicates whether the drive is processing a command or is idle 2. fault: indicates whether a drive currently is failing 3. locate: indicates to an operator where to insert a drive or where to remove a drive from 4. rebuild: indicates whether a drive that is currently being rebuilt typically the activity, fault and locate signals are shown as separate leds for each drive slot. the rebuild signal often results in the fault light being illuminated with a different color. intel ? 631xesb/632xesb i/o controller hub supports driving leds through the sgpio interface and the i2c interface. figure 5-20 shows the data flow model for sata sgpio and sata i2c schemes.
234 intel ? 631xesb/632xesb i/o controller hub datasheet functional description figure 5-20. sata data flow model when the sgpio interface is used, a single 32-bit register (sgpio control register) at offset a0h within ahci vendor specific range is used. refer to eds volume 3, section 23.3.1.6 for details of the sgpio control register. it is the responsibility of software to drive the data into this register. the data is comprised of three bits per drive. the bits may indicate activity, fault, locate and rebuild led values to drive for each drive. if the activity led is driven from the drive directly, then the three bits indicate only fault, locate and rebuild leds. note that issues such as blink rate of leds are handled by the sgpio target. that information is not included in the sgpio control register. hardware reads the data from sgpio control register, serializes the data and drives the data out onto the four sgpio pins. the four pins are sclk, sload, sdataout0 and sdataout1. note that because software may change the data asynchronously with respect to the sgpio bus clock, it is the responsibility of the hardware to make sure the data values are driven out correctly onto the sgpio bus. hardware updates the sgpio data, after software changes it, only at the next available sload change so the data driven onto sgpio is not corrupted. the sgpio clock frequency is 32 khz. the four bits of vendor specific messages are driven in the cycle immediately following sload assertion. sdataout0 drives out the data stream continuously from bit 4 to bit 15 (data to be driven out for drive 0, drive1, drive 2 and drive 3) of the sgpio register and this process is repeated. sdataout1 drives out the data stream continuously from bit 16 to bit 21 (data to be driven out for drive 4 and drive 5), then followed by six bits of zeros and this process repeated. this is shown in figure 5-21 .
intel ? 631xesb/632xesb i/o controller hub datasheet 235 functional description figure 5-21. sgpio signal relationships for the i 2 c approach, the sgpio control register is made visible in the smbus slave register space. sgpio control register is mapped to smbus slave registers at offset 9h, ah and bh. the sm link interface is externally connected to an unused smbus on the bmc. bmc will read the data, encapsulate it in the ipmi format and drive that data through another smbus or i2c bus to the gem controller. gem controller then updates the led drivers with the updated status. 5.19 high-precision event timers this function provides a set of timers that can be used by the operating system. the timers are defined such that in the future, the operating system may be able to assign specific timers to be used directly by specific applications. each timer can be configured to cause a separate interrupt. intel ? 631xesb/632xesb i/o controller hub provides three timers. the three timers are implemented as a single counter each with its own comparator and value register. this counter increases monotonically. each individual timer can generate an interrupt when the value in its value register matches the value in the main counter. the registers associated with these timers are mapped to a memory space (much like the i/o apic). however, it is not implemented as a standard pci function. the bios reports to the operating system the location of the register space. the hardware can support an assignable decode space; however, the bios sets this space prior to handing it over to the operating system (see section 11.5 ). it is not expected that the operating system will move the location of these timers once it is set by the bios. intel ? 631xesb/632xesb i/o controller hub specific information ? this logic has not appeared in any prior intel chipset. ? in the intel ? 631xesb/632xesb i/o controller hub, one timer block is implemented. the timer block has one counter-3 timers (comparators). future devices may have a different number of implemented timers. various capabilities registers indicate the number of timers and the capabilities of each.
236 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.19.1 timer accuracy ? the timers are accurate over any 1 ms period to within 0.05% of the time specified in the timer resolution fields. ? within any 100 microsecond period, the timer reports a time that is up to two ticks too early or too late. each tick is less than or equal to 100 ns, so this represents an error of less than 0.2%. ? the timer is monotonic. it does not return the same value on two consecutive reads (unless the counter has rolled over and reached the same value). ? the main counter is clocked by the 14.31818 mhz clock, synchronized into the 125 mhz domain. this results in a non-uniform duty cycle on the synchronized clock, but does have the correct average period. the accuracy of the main counter is as accurate as the 14.3818 mhz clock. 5.19.2 interrupt mapping mapping option #1 (leg acy replacement option) in this case, the legacy replacement rout bit (leg_rt_cnf) is set. this forces the mapping found in ta b l e 5 - 6 1 . mapping option #2 (standard option) in this case, the legacy replacement rout bit (leg_rt_cnf) is 0. each timer has its own routing control. the supported interrupt values are irq 20, 21, 22, and 23. 5.19.3 periodic versus non-periodic modes non-periodic mode timer 0 is configurable to 32 (default) or 64-bit mode, whereas timers 1 and 2 support only 32-bit mode (see section 26.1.5 ). all three timers support non-periodic mode. consult section 2.3.9.2.1 of the ia-pc hpet specification for a description of this mode. periodic mode timer 0 is the only timer that supports periodic mode. consult section 2.3.9.2.2 of the ia-pc hpet specification for a description of this mode. the following usage model is expected: 1. software clears the enable_cnf bit to prevent any interrupts 2. software clears the main counter by writing a value of 00h to it. table 5-61. legacy replacement routing timer 8259 mapping apic mapping comment 0 irq0 irq2 in this case, the 8254 timer will not cause any interrupts 1 irq8 irq8 in this case, the rtc will not cause any interrupts. 2 per irq routing field per irq routing field
intel ? 631xesb/632xesb i/o controller hub datasheet 237 functional description 3. software sets the timer0_val_set_cnf bit. 4. software writes the new value in the timer0_comparator_val register. 5. software sets the enable_cnf bit to enable interrupts. the timer 0 comparator value register cannot be programmed reliably by a single 64- bit write in a 32-bit environment except if only the periodic rate is being changed during run-time. if the actual timer 0 comparator value needs to be reinitialized, then the following software solution will always work regardless of the environment: 1. set timer0_val_set_cnf bit. 2. set the lower 32 bits of the timer0 comparator value register. 3. set timer0_val_set_cnf bit. 4. set the upper 32 bits of the timer0 comparator value register. 5.19.4 enabling the timers the bios or operating system pnp code should route the interrupts. this includes the legacy rout bit, interrupt rout bit (for each timer), interrupt type (to select the edge or level type for each timer) the device driver code should do the following for an available timer: 1. set the overall enable bit (offset 04h, bit 0). 2. set the timer type field (selects one-shot or periodic). 3. set the interrupt enable. 4. set the comparator value. 5.19.5 interrupt levels interrupts directed to the internal 8259s are active high. see section 5.11 for information regarding the polarity programming of the i/o apic for detecting internal interrupts. if the interrupts are mapped to the i/o apic and set for level-triggered mode, they can be shared with pci interrupts. this may be shared although it?s unlikely for the operating system to attempt to do this. if more than one timer is configured to share the same irq (using the timern_int_rout_cnf fields), then the software must configure the timers to level- triggered mode. edge-triggered interrupts cannot be shared. 5.19.6 handling interrupts if each timer has a unique interrupt and the timer has been configured for edge- triggered mode, then there are no specific steps required. no read is required to process the interrupt. if a timer has been configured to level-triggered mode, then its interrupt must be cleared by the software. this is done by reading the interrupt status register and writing a 1 back to the bit position for the interrupt to be cleared. independent of the mode, software can read the value in the main counter to see how time has passed between when the interrupt was generated and when it was first serviced.
238 intel ? 631xesb/632xesb i/o controller hub datasheet functional description if timer 0 is set up to generate a periodic interrupt, the software can check to see how much time remains until the next interrupt by checking the timer value register. 5.19.7 issues related to 64-bit timers with 32-bit processors a 32-bit timer can be read directly using pr ocessors that are capable of 32-bit or 64-bit instructions. however, a 32-bit processor may not be able to directly read 64-bit timer. a race condition comes up if a 32-bit processor reads the 64-bit register using two separate 32-bit reads. the danger is that just after reading one half, the other half rolls over and changes the first half. if a 32-bit processor needs to access a 64-bit timer, it must first halt the timer before reading both the upper and lower 32-bits of the timer. if a 32-bit processor does not want to halt the timer, it can use the 64-bit timer as a 32-bit timer by setting the timern_32mode_cnf bit. this causes the timer to behave as a 32-bit timer. the upper 32-bits are always 0. 5.20 usb uhci host controllers (d29:f0, f1, f2, and f3) the intel ? 631xesb/632xesb i/o controller hub contains four usb 2.0 full/low-speed host controllers that support the standard universal host controller interface (uhci), revision 1.1. each uhci host controller (uhc) includes a root hub with two separate usb ports each, for a total of eight usb ports. ? overcurrent detection on all eight usb ports is supported. the overcurrent inputs are not 5 v tolerant, and can be used as gpis if not needed. ?the intel ? 631xesb/632xesb i/o controller hub?s uhci host controllers are arbitrated differently than standard pc i devices to improve arbitration latency. ? the uhci controllers use the analog front end (afe) embedded cell that allows support for usb full-speed signaling rates, instead of usb i/o buffers. note: new in intel ? 631xesb/632xesb i/o controller hub: ? new manufacturer and device id for the usb controllers ? trusted usb port ? dynamic bus mastering signals to the power management logic to properly indicate when memory accesses are pending. ? updated interrupt pin reporting scheme ? overcurrent pins are no longer 5 v tolerant. these i/o buffers are reduced to 3.3 v tolerance. 5.20.1 data structures in main memory section 3.1 - 3.3 of the universal host controller interface, revision 1.1 details the data structures used to communicate control, status, and data between software and the intel ? 631xesb/632xesb i/o controller hub. 5.20.2 data transfers to/from main memory section 3.4 of the universal host controller interface, revision 1.1 describes the details on how hcd and the intel ? 631xesb/632xesb i/o controller hub communicate by way of the schedule data structures.
intel ? 631xesb/632xesb i/o controller hub datasheet 239 functional description 5.20.3 data encoding and bit stuffing the intel ? 631xesb/632xesb i/o controller hub usb employs nrzi data encoding (non-return to zero inverted) when transmitting packets. full details on this implementation are given in the universal serial bus revision 2.0 specification. 5.20.4 bus protocol 5.20.4.1 bit ordering bits are sent out onto the bus least significant bit (lsb) first, followed by next lsb, through to the most significant bit (msb) last. 5.20.4.2 sync field all packets begin with a synchronization (sync) field, which is a coded sequence that generates a maximum edge transition density. the sync field appears on the bus as idle followed by the binary string ?kjkjkjkk,? in its nrzi encoding. it is used by the input circuitry to align incoming data with the local clock and is defined to be 8 bits in length. sync serves only as a synchronization mechanism and is not shown in the following packet diagrams. the last two bits in the sync field are a marker that is used to identify the first bit of the pid. all subsequent bits in the packet must be indexed from this point. 5.20.4.3 packet field formats all packets have distinct start and end of packet delimiters. full details are given in the universal serial bus revision 2.0 specification in section 8.3.1. 5.20.4.4 address fields function endpoints are addressed using the function address field and the endpoint field. full details on this are given in the universal serial bus revision 2.0 specification in section 8.3.2. 5.20.4.5 frame number field the frame number field is an 11-bit field that is incremented by the host on a per frame basis. the frame number field rolls over upon reaching its maximum value of 7ffh, and is sent only for sof tokens at the start of each frame. 5.20.4.6 data field the data field may range from 0 to 1023 bytes and must be an integral numbers of bytes. data bits within each byte are shifted out lsb first. 5.20.4.7 cyclic redundancy check (crc) crc is used to protect the all non-pid fields in token and data packets. in this context, these fields are considered to be protected fields. full details on this are given in the universal serial bus revision 2.0 specification in section 8.3.5.
240 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.20.5 packet formats the usb protocol calls out several packet types: token, data, and handshake packets. full details on this are given in the universal serial bus revision 2.0 specification in section 8.4. 5.20.6 usb interrupts there are two general groups of usb interrupt sources, those resulting from execution of transactions in the schedule, and those resulting from an intel ? 631xesb/632xesb i/o controller hub operation error. all transaction-based sources can be masked by software through the intel ? 631xesb/632xesb i/o controller hub?s interrupt enable register. additionally, individual transfer descriptors can be marked to generate an interrupt on completion. when the intel ? 631xesb/632xesb i/o controller hub drives an interrupt for usb, it internally drives the pirqa# pin for usb function #0 and usb function #3, pirqd# pin for usb function #1, and the pirqc# pin for usb function #2, until all sources of the interrupt are cleared. in order to accommodate some operating systems, the interrupt pin register must contain a different value for each function of this new multi-function device. 5.20.6.1 transaction based interrupts these interrupts are not signaled until after the status for the last complete transaction in the frame has been written back to host memory. this guarantees that software can safely process through (frame list current index -1) when it is servicing an interrupt. crc error / time-out a crc/time-out error occurs when a packet transmitted from the intel ? 631xesb/ 632xesb i/o controller hub to a usb device or a packet transmitted from a usb device to the intel ? 631xesb/632xesb i/o controller hub generates a crc error. the intel ? 631xesb/632xesb i/o controller hub is informed of this event by a time-out from the usb device or by the intel ? 631xesb/632xesb i/o controller hub?s crc checker generating an error on reception of the packet. additionally, a usb bus time- out occurs when usb devices do not respond to a transaction phase within 19-bit times of an eop. either of these conditions causes the c_err field of the td to decrement. when the c_err field decrements to 0, the following occurs: ? the active bit in the td is cleared. ? the stalled bit in the td is set. ? the crc/time-out bit in the td is set. ? at the end of the frame, the usb error interrupt bit is set in the hc status register. if the crc/time out interrupt is enabled in the interrupt enable register, a hardware interrupt will be signaled to the system. interrupt on completion transfer descriptors contain a bit that can be set to cause an interrupt on their completion. the completion of the transaction associated with that block causes the usb interrupt bit in the hc status register to be set at the end of the frame in which
intel ? 631xesb/632xesb i/o controller hub datasheet 241 functional description the transfer completed. when a td is encountered with the ioc bit set to 1, the ioc bit in the hc status register is set to 1 at the end of the frame if the active bit in the td is set to 0 (even if it was set to 0 when initially read). if the ioc enable bit of interrupt enable register (bit 2 of i/o offset 04h) is set, a hardware interrupt is signaled to the system. the usb interrupt bit in the hc status register is set either when the td completes successfully or because of errors. if the completion is because of errors, the usb error bit in the hc status register is also set. short packet detect a transfer set is a collection of data which requires more than one usb transaction to completely move the data across the usb. an example might be a large print file which requires numerous tds in multiple frames to completely transfer the data. reception of a data packet that is less than the endpoint?s max packet size during control, bulk or interrupt transfers signals the completion of the transfer set, even if there are active tds remaining for this transfer set. setting the spd bit in a td indicates to the hc to set the usb interrupt bit in the hc status register at the end of the frame in which this event occurs. this feature streamlines the processing of input on these transfer types. if the short packet interrupt enable bit in the interrupt enable register is set, a hardware interrupt is signaled to the system at the end of the frame where the event occurred. serial bus babble when a device transmits on the usb for a time greater than its assigned max length, it is said to be babbling. since isochrony can be destroyed by a babbling device, this error results in the active bit in the td being cleared to 0 and the stalled and babble bits being set to one. the c_err field is not decremented for a babble. the usb error interrupt bit in the hc status register is set to 1 at the end of the frame. a hardware interrupt is signaled to the system. if an eof babble was caused by the intel ? 631xesb/632xesb i/o controller hub (due to incorrect schedule for instance), the intel ? 631xesb/632xesb i/o controller hub forces a bit stuff error followed by an eop and the start of the next frame. stalled this event indicates that a device/endpoint returned a stall handshake during a transaction or that the transaction ended in an error condition. the tds stalled bit is set and the active bit is cleared. reception of a stall does not decrement the error counter. a hardware interrupt is signaled to the system. data buffer error this event indicates that an overrun of incoming data or a under-run of outgoing data has occurred for this transaction. this would generally be caused by the intel ? 631xesb/632xesb i/o controller hub not being able to access required data buffers in memory within necessary latency requirements. either of these conditions causes the c_err field of the td to be decremented. when c_err decrements to 0, the active bit in the td is cleared, the stalled bit is set, the usb error interrupt bit in the hc status register is set to 1 at the end of the frame and a hardware interrupt is signaled to the system.
242 intel ? 631xesb/632xesb i/o controller hub datasheet functional description bit stuff error a bit stuff error results from the detection of a sequence of more that six 1s in a row within the incoming data stream. this causes the c_err field of the td to be decremented. when the c_err field decrements to 0, the active bit in the td is cleared to 0, the stalled bit is set to 1, the usb error interrupt bit in the hc status register is set to 1 at the end of the frame and a hardware interrupt is signaled to the system. 5.20.6.2 non-transaction-based interrupts if an intel ? 631xesb/632xesb i/o controller hub process error or system error occur, the intel ? 631xesb/632xesb i/o controller hub halts and immediately issues a hardware interrupt to the system. resume received this event indicates that the intel ? 631xesb/632xesb i/o controller hub received a resume signal from a device on the usb bus during a global suspend. if this interrupt is enabled in the interrupt enable register , a hardware interrupt is signaled to the system allowing the usb to be brought out of the suspend state and returned to normal operation. intel ? 631xesb/632xesb i/o controller hub process error the hc monitors certain critical fields during operation to ensure that it does not process corrupted data structures. these include checking for a valid pid and verifying that the maxlength field is less than 1280. if it detects a condition that would indicate that it is processing corrupted data structures, it immediately halts processing, sets the hc process error bit in the hc status register and signals a hardware interrupt to the system. this interrupt cannot be disabled through the interrupt enable register. host system error the intel ? 631xesb/632xesb i/o controller hub sets this bit to 1 when a parity error, master abort, or target abort occur. when this error occurs, the intel ? 631xesb/ 632xesb i/o controller hub clears the run/stop bit in the command register to prevent further execution of the scheduled tds. this interrupt cannot be disabled through the interrupt enable register. 5.20.7 usb power management the host controller can be put into a suspended state and its power can be removed. this requires that certain bits of information are retained in the resume power plane of the intel ? 631xesb/632xesb i/o controller hub so that a device on a port may wake the system. such a device may be a fax-modem, which will wake up the machine to receive a fax or take a voice message. the settings of the following bits in i/o space will be maintained when the intel ? 631xesb/632xesb i/o controller hub enters the s3, s4, or s5 states.
intel ? 631xesb/632xesb i/o controller hub datasheet 243 functional description when the intel ? 631xesb/632xesb i/o controller hub detects a resume event on any of its ports, it sets the corresponding usb_sts bit in acpi space. if usb is enabled as a wake/break event, the system wakes up and an sci generated. 5.20.8 usb legacy keyboard operation when a usb keyboard is plugged into the sy stem, and a standard keyboard is not, the system may not boot, and ms-dos legacy software will not run, because the keyboard will not be identified. the intel ? 631xesb/632xesb i/o controller hub implements a series of trapping operations which will snoop accesses that go to the keyboard controller, and put the expected data from the usb keyboard into the keyboard controller. note: the scheme described below assumes a keyboard controller (8042 or equivalent) on the lpc bus. this legacy operation is performed through smm space. figure 5-22 shows the enable and status path. the latched smi source (60r, 60w, 64r, 64w) is available in the status register. because the enable is after the latch, it is possible to check for other events that didn't necessarily cause an smi. it is the software's responsibility to logically and the value with the appropriate enable bits. note also that the smi is generated before the pci cycle completes (for example, before trdy# goes active) to ensure that the processor doesn't complete the cycle before the smi is observed. this method is used on mpiix and has been validated. the logic also needs to block the accesses to the 8042. if there is an external 8042, then this is simply accomplished by not activating the 8042 cs. this is simply done by logically anding the four enables (60r, 60w, 64r, 64w) with the 4 types of accesses to determine if 8042cs should go active. an additional term is required for the ?pass- through? case. the state table for the diagram is shown in ta bl e 5 - 6 3 . table 5-62. bits maintained in low power states register offset bit description command 00h 3 enter global suspend mode (egsm) status 02h 2 resume detect port status and control 10h & 12h 2 port enabled/disabled 6resume detect 8 low-speed device attached 12 suspend
244 intel ? 631xesb/632xesb i/o controller hub datasheet functional description figure 5-22. usb legacy keyboard flow diagram
intel ? 631xesb/632xesb i/o controller hub datasheet 245 functional description table 5-63. usb legacy keyboard state transitions current state action data value next state comment idle 64h / write d1h gatestate1 standard d1 command. cycle passed through to 8042. smi# doesn't go active. pstate (offset c0, bit 6) goes to 1. idle 64h / write not d1h idle bit 3 in config register determines if cycle passed through to 8042 and if smi# generated. idle 64h / read n/a idle bit 2 in config register determines if cycle passed through to 8042 and if smi# generated. idle 60h / write don't care idle bit 1 in config register determines if cycle passed through to 8042 and if smi# generated. idle 60h / read n/a idle bit 0 in config register determines if cycle passed through to 8042 and if smi# generated. gatestate1 60h / write xxh gatestate2 cycle passed through to 8042, even if trap enabled in bit 1 in config register. no smi# generated. pstate remains 1. if data value is not dfh or ddh then the 8042 may chose to ignore it. gatestate1 64h / write d1h gatestate1 cycle passed through to 8042, even if trap enabled by way of bit 3 in config register. no smi# generated. pstate remains 1. stay in gatestate1 because this is part of the double-trigger sequence. gatestate1 64h / write not d1h ilde bit 3 in config space determines if cycle passed through to 8042 and if smi# generated. pstate goes to 0. if bit 7 in config register is set, then smi# should be generated. gatestate1 60h / read n/a idle this is an invalid sequence. bit 0 in config register determines if cycle passed through to 8042 and if smi# generated. pstate goes to 0. if bit 7 in config register is set, then smi# should be generated. gatestate1 64h / read n/a gatestate1 just stay in same state. generate an smi# if enabled in bit 2 of config register. pstate remains 1. gatestate2 64 / write ffh idle standard end of sequence. cycle passed through to 8042. pstate goes to 0. bit 7 in config space determines if smi# should be generated. gatestate2 64h / write not ffh idle improper end of sequence. bit 3 in config register determines if cycle passed through to 8042 and if smi# generated. pstate goes to 0. if bit 7 in config register is set, then smi# should be generated. gatestate2 64h / read n/a gatestate2 just stay in same state. generate an smi# if enabled in bit 2 of config register. pstate remains 1. gatestate2 60h / write xxh idle improper end of sequence. bit 1 in config register determines if cycle passed through to 8042 and if smi# generated. pstate goes to 0. if bit 7 in config register is set, then smi# should be generated. gatestate2 60h / read n/a idle improper end of sequence. bit 0 in config register determines if cycle passed through to 8042 and if smi# generated. pstate goes to 0. if bit 7 in config register is set, then smi# should be generated.
246 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.21 usb ehci host controller (d29:f7) the intel ? 631xesb/632xesb i/o controller hub contains an enhanced host controller interface (ehci) compliant host controller which supports up to eight usb 2.0 high- speed compliant root ports. usb 2.0 allows data transfers up to 480 mb/s using the same pins as the eight usb full-speed/low-speed ports. the intel ? 631xesb/632xesb i/o controller hub contains port-routing logic that determines whether a usb port is controlled by one of the uhci controllers or by the ehci controller. usb 2.0 based debug port is also implemented in the intel ? 631xesb/632xesb i/o controller hub. a summary of the key architectural differences between the usb uhci host controllers and the ehci host controller are shown in ta b l e 5 - 6 4 . 5.21.1 ehc initialization the following descriptions step through the expected intel ? 631xesb/632xesb i/o controller hub enhanced host controller (ehc) initialization sequence in chronological order, beginning with a complete power cycle in which the suspend well and core well have been off. 5.21.1.1 bios initialization bios performs a number of platform customization steps after the core well has powered up. contact your intel field representative for additional intel ? 631xesb/ 632xesb i/o controller hub bios information. 5.21.1.2 driver initialization see chapter 4 of the enhanced host controller interface specification for universal serial bus, revision 1.0 . table 5-64. uhci vs. ehci parameter usb uhci usb ehci accessible by i/o space memory space memory data structure single linked list separated in to periodic and asynchronous lists differential signaling voltage 3.3 v 400 mv ports per controller 2 8
intel ? 631xesb/632xesb i/o controller hub datasheet 247 functional description 5.21.1.3 ehc resets in addition to the standard intel ? 631xesb/632xesb i/o controller hub hardware resets, portions of the ehc are reset by the hcreset bit and the transition from the d3hot device power management state to the d0 state. the effects of each of these resets are: if the detailed register descriptions give exceptions to these rules, those exceptions override these rules. this summary is provided to help explain the reasons for the reset policies. 5.21.2 data structures in main memory see section 3 and appendix b of the enhanced host controller interface specification for universal serial bus, revision 1.0 for details. 5.21.3 usb 2.0 enhanced host controller dma the intel ? 631xesb/632xesb i/o controller hub usb 2.0 ehc implements three sources of usb packets. they are, in order of priority on usb during each microframe, 1) the usb 2.0 debug port (see section 5.21.10), 2) the periodic dma engine, and 3) the asynchronous dma engine. the intel ? 631xesb/632xesb i/o controller hub always performs any currently-pending debug port transaction at the beginning of a microframe, followed by any pending periodic traffic for the current microframe. if there is time left in the microframe, then the ehc performs any pending asynchronous traffic until the end of the microframe (eof1). note that the debug port traffic is presented only on one port (port #0), while the other ports are idle during this time. 5.21.4 data encoding and bit stuffing see chapter 8 of the universal serial bus revision 2.0 specification. 5.21.5 packet formats see chapter 8 of the universal serial bus revision 2.0 specification . 5.21.6 usb 2.0 interrupts and error conditions section 4 of the enhanced host controller interface specification for universal serial bus, revision 1.0 goes into detail on the ehc interrupts and the error conditions that cause them. all error conditions that the ehc detects can be reported through the ehci interrupt status bits. only intel ? 631xesb/632xesb i/o controller hub-specific reset does reset does not reset comments hcreset bit set. memory space registers except structural parameters (which is written by bios). configuration registers. the hcreset must affect only registers that the ehci driver controls. pci configuration space and bios-programmed parameters can not be reset. software writes the device power state from d3hot (11b) to d0 (00b). core well registers (except bios- programmed registers). suspend well registers; bios- programmed core well registers. the d3-to-d0 transition must not cause wake information (suspend well) to be lost. it also must not clear bios-programmed registers because bios may not be invoked following the d3-to-d0 transition.
248 intel ? 631xesb/632xesb i/o controller hub datasheet functional description interrupt and error-reporting behavior is documented in this section. the ehci interrupts section must be read first, followed by this section of the datasheet to fully comprehend the ehc interrupt and error-reporting functionality. ? based on the ehc?s buffer sizes and buffer management policies, the data buffer error can never occur on the intel ? 631xesb/632xesb i/o controller hub. ? master abort and target abort responses from hub interface on ehc-initiated read packets will be treated as fatal host errors. the ehc halts when these conditions are encountered. ?the intel ? 631xesb/632xesb i/o controller hub may assert the interrupts which are based on the interrupt threshold as soon as the status for the last complete transaction in the interrupt interval has been posted in the internal write buffers. the requirement in the enhanced host controller interface specification for universal serial bus, revision 1.0 (that the status is written to memory) is met internally, even though the write may not be seen on the hub interface before the interrupt is asserted. ? since the intel ? 631xesb/632xesb i/o controller hub supports the 1024-element frame list size, the frame list rollover interrupt occurs every 1024 milliseconds. ?the intel ? 631xesb/632xesb i/o controller hub delivers interrupts using pirqh#. ?the intel ? 631xesb/632xesb i/o controller hub does not modify the cerr count on an interrupt in when the ?do complete-split? execution criteria are not met. ? for complete-split transactions in the periodic list, the ?missed microframe? bit does not get set on a control-structure-fetch that fails the late-start test. if subsequent accesses to that control structure do not fail the late-start test, then the ?missed microframe? bit will get set and written back. 5.21.6.1 aborts on usb 2.0-initiated memory reads if a read initiated by the ehc is aborted, the ehc treats it as a fatal host error. the following actions are taken when this occurs: ? the host system error status bit is set ? the dma engines are halted after completing up to one more transaction on the usb interface ? if enabled (by the host system error enable), then an interrupt is generated ? if the status is master abort, then the received master abort bit in configuration space is set ? if the status is target abort, then the received target abort bit in configuration space is set ? if enabled (by the serr enable bit in the function?s configuration space), then the signaled system error (serr) bit in configuration bit is set. 5.21.7 usb 2.0 power management 5.21.7.1 pause feature this feature allows platforms to dynamically enter low-power states during brief periods when the system is idle (that is, between keystrokes). this is useful for enabling power management features like intel speedstep ? technology in the intel ? 631xesb/632xesb i/o controller hub. the policies for entering these states typically are based on the recent history of system bus activity to incrementally enter deeper power management states. normally, when the ehc is enabled, it regularly
intel ? 631xesb/632xesb i/o controller hub datasheet 249 functional description accesses main memory while traversing the dma schedules looking for work to do; this activity is viewed by the power management software as a non-idle system, thus preventing the power managed states to be entered. suspending all of the enabled ports can prevent the memory accesses from occurring, but there is an inherent latency overhead with entering and exiting the suspended state on the usb ports that makes this unacceptable for the purpose of dynamic power management. as a result, the ehci software drivers are allowed to pause the ehc?s dma engines when it knows that the traffic patterns of the attached devices can afford the delay. the pause prevents only the ehc from generating memory accesses; the sof packets continue to be generated on the usb ports (unlike the suspended state). 5.21.7.2 suspend feature the enhanced host controller interface (ehci) for universal serial bus specification , section 4.3 describes the details of port suspend and resume. 5.21.7.3 acpi device states the usb 2.0 function supports only the d0 and d3 pci power management states. notes regarding the intel ? 631xesb/632xesb i/o controller hub implementation of the device states: 1. the ehc hardware does not inherently consume any more power when it is in the d0 state than it does in the d3 state. however, software is required to suspend or disable all ports prior to entering the d3 state such that the maximum power consumption is reduced. 2. in the d0 state, all implemented ehc features are enabled. 3. in the d3 state, accesses to the ehc memory-mapped i/o range will master abort. note that, since the debug port uses the same memory range, the debug port is operational only when the ehc is in the d0 state. 4. in the d3 state, the ehc interrupt must never assert for any reason. the internal pme# signal is used to signal wake events, and so forth. 5. when the device power state field is written to d0 from d3, an internal reset is generated. see section ehc resets for general rules on the effects of this reset. 6. attempts to write any other value into the device power state field other than 00b (d0 state) and 11b (d3 state) will complete normally without changing the current value in this field. 5.21.7.4 acpi system states the ehc behavior as it relates to other power management states in the system is summarized in the following list: ? the system is always in the s0 state when the ehc is in the d0 state. however, when the ehc is in the d3 state, the system may be in any power management state (including s0). ? when in d0, the pause feature (see section 5.21.7.1 ) enables dynamic processor low-power states to be entered. ? the pll in the ehc is disabled when entering the s3hot state (48 mhz clock stops), or the s3cold/s4/s5 states (core power turns off). ? all core well logic is reset in the s3/s4/s5 states.
250 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.21.8 interaction with uhci host controllers the enhanced host controller shares the eight usb ports with four uhci host controllers in the intel ? 631xesb/632xesb i/o controller hub. the uhc at d29:f0 shares ports 0 and 1; the uhc at d29:f1 shares ports 2 and 3; the uhc at d29:f2 shares ports 4 and 5; and the uhc at d29:f3 shares ports 6 and 7 with the ehc. there is very little interaction between the enhanced and the uhci controllers other than the muxing control which is provided as part of the ehc. figure 5-23 shows the usb port connections at a conceptual level. 5.21.8.1 port-routing logic integrated into the ehc functionality is port-routing logic, which performs the muxing between the uhci and ehci host controllers. the intel ? 631xesb/632xesb i/o controller hub conceptually implements this logic as described in section 4.2 of the enhanced host controller interface specification for universal serial bus, revision 1.0. if a device is connected that is not capabl e of usb 2.0?s high-speed signaling protocol or if the ehci software drivers are not pr esent as indicated by the configured flag, then the uhci controller owns the port. owning the port means that the differential output is driven by the owner and the input stream is visible only to the owner. the host controller that is not the owner of the port internally sees a disconnected port. note: the port-routing logic is the only block of logic within the intel ? 631xesb/632xesb i/o controller hub that observes the physical (real) connect/disconnect information. the port status logic inside each of the host controllers observes the electrical connect/ disconnect information that is generated by the port-routing logic. only the differential signal pairs are muxed/demuxed between the uhci and ehci host controllers. the other usb functional signals are handled as follows: ? the overcurrent inputs (oc[7:0]#) are directly routed to both controllers. an overcurrent event is recorded in both controllers? status registers. figure 5-23. intel ? 631xesb/632xesb i/o controller hub-usb port connections uhci #3 (d29:f3) uchi #0 (d29:f0) uhci #1 (d29:f1) uhci #2 (d29:f2) enhanced host controller logic debug port port 7 port 3 port 4 port 5 port 6 port 2 port 1 port 0
intel ? 631xesb/632xesb i/o controller hub datasheet 251 functional description the port-routing logic is implemented in the suspend power well so that re- enumeration and re-mapping of the usb ports is not required following entering and exiting a system sleep state in which the core power is turned off. the intel ? 631xesb/632xesb i/o controller hub also allows the usb debug port traffic to be routed in and out of port #0. when in this mode, the enhanced host controller is the owner of port #0. 5.21.8.2 device connects the enhanced host controller interface specification for universal serial bus, revision 1.0 describes the details of handling device connects in section 4.2. there are four general scenarios that are summarized below. 1. configure flag = 0 and a full-speed/low-speed-only device is connected ? in this case, the uhc is the owner of the port both before and after the connect occurs. the ehc (except for the port-routing logic) never sees the connect occur. the uhci driver handles the connection and initialization process. 2. configure flag = 0 and a high-speed-capable device is connected ? in this case, the uhc is the owner of the port both before and after the connect occurs. the ehc (except for the port-routing logic) never sees the connect occur. the uhci driver handles the connection and initialization process. since the uhc does not perform the high-speed chirp handshake, the device operates in compatible mode. 3. configure flag = 1 and a full-speed/low-speed-only device is connected ? in this case, the ehc is the owner of the port before the connect occurs. the ehci driver handles the connection and performs the port reset. after the reset process completes, the ehc hardware has cleared (not set) the port enable bit in the ehc?s portsc register. the ehci driver then writes a 1 to the port owner bit in the same register, causing the uhc to see a connect event and the ehc to see an ?electrical? disconnect event. the uhci driver and hardware handle the connection and initialization process from that point on. the ehci driver and hardware handle the perceived disconnect. 4. configure flag = 1 and a high-speed-capable device is connected ? in this case, the ehc is the owner of the port before, and remains the owner after, the connect occurs. the ehci driver handles the connection and performs the port reset. after the reset process completes, the ehc hardware has set the port enable bit in the ehc?s portsc register. the port is functional at this point. the uhc continues to see an unconnected port. 5.21.8.3 device disconnects the enhanced host controller interface specification for universal serial bus, revision 1.0 describes the details of handling device connects in section 4.2. there are three general scenarios that are summarized below. 1. configure flag = 0 and the device is disconnected ? in this case, the uhc is the owner of the port both before and after the disconnect occurs. the ehc (except for the port-routing logic) never sees a device attached. the uhci driver handles disconnection process. 2. configure flag = 1 and a full-speed/low-speed-capable device is disconnected ? in this case, the uhc is the owner of the port before the disconnect occurs. the disconnect is reported by the uhc and serviced by the associated uhci driver. the port-routing logic in the ehc cluster forces the port owner bit to 0, indicating that the ehc owns the unconnected port.
252 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 3. configure flag = 1 and a high-speed-capable device is disconnected ? in this case, the ehc is the owner of the port before, and remains the owner after, the disconnect occurs. the ehci hardware and driver handle the disconnection process. the uhc never sees a device attached. 5.21.8.4 effect of resets on port-routing logic as mentioned above, the port routing logic is implemented in the suspend power well so that remuneration and re-mapping of the usb ports is not required following entering and exiting a system sleep state in which the core power is turned off. 5.21.9 usb 2.0 legacy keyboard operation the intel ? 631xesb/632xesb i/o controller hub must support the possibility of a keyboard downstream from either a full-speed/low-speed or a high-speed port. the description of the legacy keyboard support is unchanged from usb 1.1 (see section 5.20.8 ). the ehc provides the basic ability to generate smis on an interrupt event, along with more sophisticated control of the generation of smis. 5.21.10 usb 2.0 based debug port the intel ? 631xesb/632xesb i/o controller hub supports the elimination of the legacy com ports by providing the ability for new debugger software to interact with devices on a usb 2.0 port. high-level restrictions and features are: ? operational before usb 2.0 drivers are loaded. ? functions even when the port is disabled. ? works even though non-configured port is default-routed to the uhci. note that the debug port can not be used to debug an issue that requires a full-speed/low- speed device on port #0 using the uhci drivers. ? allows normal system usb 2.0 traffic in a system that may have only one usb port. ? debug port device (dpd) must be high-speed capable and connect directly to port #0 on intel ? 631xesb/632xesb i/o controller hub systems (for example, the dpd cannot be connected to port #0 through a hub). ? debug port fifo always makes forward progress (a bad status on usb is simply presented back to software). ? the debug port fifo is given only one usb access per microframe. the debug port facilitates operating system and device driver debug. it allows the software to communicate with an external console using a usb 2.0 connection. because the interface to this link does not go through the normal usb 2.0 stack, it reset event effect on configure flag effect on port owner bits suspend well reset cleared (0) set (1) core well reset no effect no effect d3-to-d0 reset no effect no effect hcreset cleared (0) set (1)
intel ? 631xesb/632xesb i/o controller hub datasheet 253 functional description allows communication with the external console during cases where the operating system is not loaded, the usb 2.0 software is broken, or where the usb 2.0 software is being debugged. specific features of th is implementation of a debug port are: ? only works with an external usb 2.0 debug device (console) ? implemented for a specific port on the host controller ? operational anytime the port is not suspended and the host controller is in d0 power state. ? capability is interrupted when port is driving usb reset 5.21.10.1 theory of operation there are two operational modes for the usb debug port: 1. mode 1 is when the usb port is in a disabled state from the viewpoint of a standard host controller driver. in mode 1, the debug port controller is required to generate a ?keepalive? packets less than 2 ms apart to keep the attached debug device from suspending. the keepalive packet should be a standalone 32-bit sync field. 2. mode 2 is when the host controller is running (that is, host controller?s run/stop# bit is 1). in mode 2, the normal transmission of sof packets will keep the debug device from suspending. behavioral rules 1. in both modes 1 and 2, the debug port controller must check for software requested debug transactions at least every 125 microseconds. 2. if the debug port is enabled by the debug driver, and the standard host controller driver resets the usb port, usb debug transa ctions are held off for the duration of the reset and until after the first sof is sent. 3. if the standard host controller driver suspends the usb port, then usb debug transactions are held off for the duration of the suspend/resume sequence and until after the first sof is sent. 4. the enabled_cnt bit in the debug register space is independent of the similar port control bit in the associated port status and control register. ta bl e 5 - 6 5 shows the debug port behavior related to the state of bits in the debug registers as well as bits in the associated port status and control register. table 5-65. debug port behavior (sheet 1 of 2) owner_cnt enabled_ct port enable run / stop suspend debug port behavior 0 x x x x debug port is not being used. normal operation. 1 0 x x x debug port is not being used. normal operation. 1 1 0 0 x debug port in mode 1. sync keepalives sent plus debug traffic 1 1 0 1 x debug port in mode 2. sof (and only sof) is sent as keepalive. debug traffic is also sent. note that no other normal traffic is sent out this port, because the port is not enabled. 1 1 1 0 0 illegal. host controller driver should never put controller into this state (enabled, not running and not suspended).
254 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.21.10.1.1 out transactions an out transaction sends data to the debug device. it can occur only when the following are true: ? the debug port is enabled ? the debug software sets the go_cnt bit ? the write_read#_cnt bit is set the sequence of the transaction is: 1. software sets the appropriate values in the following bits: ? usb_address_cnf ?usb_endpoint_cnf ? data_buffer[63:0] ? token_pid_cnt[7:0] ? send_pid_cnt[15:8] ?data_len_cnt ? write_read#_cnt (note: this will always be 1 for out transactions) ? go_cnt (note: this will always be 1 to initiate the transaction) 2. the debug port controller sends a token packet consisting of: ?sync ? token_pid_cnt field ? usb_address_cnt field ? usb_endpoint_cnt field ? 5-bit crc field 3. after sending the token packet, the debug port controller sends a data packet consisting of: ?sync ? send_pid_cnt field ? the number of data bytes indicated in data_len_cnt from the data_buffer ? 16-bit crc note: a data_len_cnt value of 0 is valid in which case no data bytes would be included in the packet. 4. after sending the data packet, the controller waits for a handshake response from the debug device. ? if a handshake is received, the debug port controller: ? a. places the received pid in the received_pid_sts field 1 1 1 0 1 port is suspended. no debug traffic sent. 1 1 1 1 0 debug port in mode 2. debug traffic is interspersed with normal traffic. 1 1 1 1 1 port is suspended. no debug traffic sent. table 5-65. debug port behavior (sheet 2 of 2) owner_cnt enabled_ct port enable run / stop suspend debug port behavior
intel ? 631xesb/632xesb i/o controller hub datasheet 255 functional description ? b. resets the error_good#_sts bit ? c. sets the done_sts bit ? if no handshake pid is received, the debug port controller: ? a. sets the exception_sts field to 001b ? b. sets the error_good#_sts bit ? c. sets the done_sts bit 5.21.10.1.2 in transactions an in transaction receives data from the debug device. it can occur only when the following are true: ? the debug port is enabled ? the debug software sets the go_cnt bit ? the write_read#_cnt bit is reset the sequence of the transaction is: 1. software sets the appropriate values in the following bits: ? usb_address_cnf ?usb_endpoint_cnf ? token_pid_cnt[7:0] ?data_len_cnt ? write_read#_cnt (note: this will always be 0 for in transactions) ? go_cnt (note: this will always be 1 to initiate the transaction) 2. the debug port controller sends a token packet consisting of: ?sync ? token_pid_cnt field ? usb_address_cnt field ? usb_endpoint_cnt field ? 5-bit crc field. 3. after sending the token packet, the debug port controller waits for a response from the debug device. if a response is received: ? the received pid is placed into the received_pid_sts field ? any subsequent bytes are placed into the data_buffer ? the data_len_cnt field is updated to show the number of bytes that were received after the pid. 4. if valid packet was received from the device that was one byte in length (indicating it was a handshake packet), then the debug port controller: ? resets the error_good#_sts bit ? sets the done_sts bit 5. if valid packet was received from the device that was more than one byte in length (indicating it was a data packet), then the debug port controller: ? transmits an ack handshake packet ? resets the error_good#_sts bit
256 intel ? 631xesb/632xesb i/o controller hub datasheet functional description ? sets the done_sts bit 6. if no valid packet is received, then the debug port controller: ? sets the exception_sts field to 001b ? sets the error_good#_sts bit ? sets the done_sts bit. 5.21.10.1.3 debug software enabling the debug port there are two mutually exclusive conditions that debug software must address as part of its startup processing: ? the ehci has been initialized by system software ? the ehci has not been initialized by system software debug software can determine the current ?initialized? state of the ehci by examining the configure flag in the ehci usb 2.0 command register. if this flag is set, then system software has initialized the ehci. otherwise the ehci should not be considered initialized. debug software will initialize the debug port registers depending on the state the ehci. however, before this can be accomplished, debug software must determine which root usb port is designated as the debug port. determining the debug port debug software can easily determine which usb root port has been designated as the debug port by examining bits 20:23 of the ehci host controller structural parameters register. this 4-bit field represents the numeric value assigned to the debug port (that is, 0000=port 0). debug software startup with non-initialized ehci debug software can attempt to use the debug port if after setting the owner_cnt bit, the current connect status bit in the appropriate (see determining the debug port) portsc register is set. if the current connect status bit is not set, then debug software may choose to terminate or it may choose to wait until a device is connected. if a device is connected to the port, then debug software must reset/enable the port. debug software does this by setting and then clearing the port reset bit the portsc register. to guarantee a successful reset, debug software should wait at least 50 ms before clearing the port reset bit. due to possible delays, this bit may not change to 0 immediately; reset is complete when this bit reads as 0. software must not continue until this bit reads 0. if a high-speed device is attached, the ehci will automatically set the port enabled/ disabled bit in the portsc register and the debug software can proceed. debug software should set the enabled_cnt bit in the debug port control/status register, and then reset (clear) the port enabled/disabled bit in the portsc register (so that the system host controller driver does not see an enabled port when it is first loaded). debug software startup with initialized ehci debug software can attempt to use the debug port if the current connect status bit in the appropriate (see determining the debug port) portsc register is set. if the current connect status bit is not set, then debug software may choose to terminate or it may choose to wait until a device is connected.
intel ? 631xesb/632xesb i/o controller hub datasheet 257 functional description if a device is connected, then debug software must set the owner_cnt bit and then the enabled_cnt bit in the debug port control/status register. determining debug peripheral presence after enabling the debug port functionality, debug software can determine if a debug peripheral is attached by attempting to send data to the debug peripheral. if all attempts result in an error (exception bits in the debug port control/status register indicates a transaction error), then the attached device is not a debug peripheral. if the debug port peripheral is not present, then debug software may choose to terminate or it may choose to wait until a debug peripheral is connected. 5.22 smbus the intel ? 631xesb/632xesb i/o controller hub provides an system management bus (smbus) 2.0 compliant host controller (d31:f3) as well as an smbus slave interface in legacy i/o core, and, intel ? 631xesb/632xesb i/o controller hub provides another smbus slave interface in the pci express to pci-x bridge. also, in intel ? 631xesb/ 632xesb i/o controller hub bmc, there are 5 smb interfaces which can be master or slave interface (refer to section section 5.5.5.2 for details).intel recommends using smbus 3. 5.22.1 smbus controller (d31:f3) this host controller provides a mechanism for the processor to initiate communications with smbus peripherals (slaves). the intel ? 631xesb/632xesb i/o controller hub is also capable of operating in a mode in which it can communicate with i 2 c compatible devices. the intel ? 631xesb/632xesb i/o controller hub can perform smbus messages with either packet error checking (pec) enabled or disabled. the actual pec calculation and checking is performed in hardware by the intel ? 631xesb/632xesb i/o controller hub. the slave interface allows an external master to read from or write to the intel ? 631xesb/632xesb i/o controller hub. write cycles can be used to cause certain events or pass messages, and the read cycles can be used to determine the state of various status bits. the intel ? 631xesb/632xesb i/o controller hub?s internal host controller cannot access the intel ? 631xesb/632xesb i/o controller hub?s internal slave interface. the intel ? 631xesb/632xesb i/o controller hub smbus logic exists in device 31:function 3 configuration space, and consists of a transmit data path, and host controller. the transmit data path provides the data flow logic needed to implement the seven different smbus command protocols and is controlled by the host controller. the intel ? 631xesb/632xesb i/o controller hub smbus controller logic is clocked by rtc clock. the smbus address resolution protocol (arp) is supported by using the existing host controller commands through software, except for the new host notify command (which is actually a received message). the programming model of the host controller is combined into two portions: a pci configuration portion, and a system i/o mapped portion. all static configuration, such as the i/o base address, is done by way of the pci configuration space. real-time programming of the host interface is done in system i/o space.
258 intel ? 631xesb/632xesb i/o controller hub datasheet functional description the intel ? 631xesb/632xesb i/o controller hub smbus host controller checks for parity errors as a target. if an error is detected, the detected parity error bit in the pci status register (device 31:function 3:offset 06h:bit 15) is set. if bit 6 and bit 8 of the pci command register (device 31:function 3:offset 04h) are set, an serr# is generated and the signalled serr# bit in the pci status register (bit 14) is set. 5.22.1.1 host controller the smbus host controller is used to send commands to other smbus slave devices. software sets up the host controller with an address, command, and, for writes, data and optional pec; and then tells the controller to start. when the controller has finished transmitting data on writes, or receiving data on reads, it generates an smi# or interrupt, if enabled. the host controller supports 8 command protocols of the smbus interface (see system management bus (smbus) specification, version 2.0 ): quick command, send byte, receive byte, write byte/word, read byte/word, process call, block read/write, block write?block read process call. the smbus host controller requires that the various data and command fields be setup for the type of command to be sent. when software sets the start bit, the smbus host controller performs the requested transaction, and interrupts the processor (or generates an smi#) when the transaction is completed. once a start command has been issued, the values of the ?active registers? (host control, host command, transmit slave address, data 0, data 1) should not be changed or read until the interrupt status bit (intr) has been set (indicating the completion of the command). any register values needed for computation purposes should be saved prior to issuing of a new command, as the smbus host controller updates all registers while completing the new command. using the smb host controller to send commands to the intel ? 631xesb/632xesb i/o controller hub?s smb slave port is supported. the intel ? 631xesb/632xesb i/o controller hub is fully compliant with the system management bus (smbus) specification, version 2.0 . slave functionality, including the host notify protocol, is available on the smbus pins. the smlink and smbus signals must be tied together externally. 5.22.1.1.1 command protocols in all of the following commands, the host status register (offset 00h) is used to determine the progress of the command. while the command is in operation, the host_busy bit is set. if the command completes successfully, the intr bit will be set in the host status register. if the device does not respond with an acknowledge, and the transaction times out, the dev_err bit is set. if software sets the kill bit in the host control register while the command is running, the transaction will stop and the failed bit will be set. quick command when programmed for a quick command, the transmit slave address register is sent. the pec byte is never appended to the quick protocol. software should force the pec_en bit to 0 when performing the quick command. software must force the i2c_en bit to 0 when running this command. see section 5.5.1 of the system management bus (smbus) specification, version 2.0 for the format of the protocol.
intel ? 631xesb/632xesb i/o controller hub datasheet 259 functional description send byte / receive byte for the send byte command, the transmit slave address and device command registers are sent for the receive byte command, the transmit slave address register is sent. the data received is stored in the data0 register. software must force the i2c_en bit to 0 when running this command. the receive byte is similar to a send byte, the only difference is the direction of data transfer. see sections 5.5.2 and 5.5.3 of the system management bus (smbus) specification, version 2.0 for the format of the protocol. write byte/word the first byte of a write byte/word access is the command code. the next 1 or 2 bytes are the data to be written. when programmed for a write byte/word command, the transmit slave address, device command, and data0 registers are sent. in addition, the data1 register is sent on a write word command. software must force the i2c_en bit to 0 when running this command. see section 5.5.4 of the system management bus (smbus) specification, version 2.0 for the format of the protocol. read byte/word reading data is slightly more complicated than writing data. first the intel ? 631xesb/ 632xesb i/o controller hub must write a command to the slave device. then it must follow that command with a repeated star t condition to denote a read from that device's address. the slave then returns 1 or 2 bytes of data. software must force the i2c_en bit to 0 when running this command. when programmed for the read byte/word command, the transmit slave address and device command registers are sent. data is received into the data0 on the read byte, and the dat0 and data1 registers on the read word. see section 5.5.5 of the system management bus (smbus) specification, version 2.0 f or the format of the protocol. process call the process call is so named because a command sends data and waits for the slave to return a value dependent on that data. the protocol is simply a write word followed by a read word, but without a second command or stop condition. when programmed for the process call command, the intel ? 631xesb/632xesb i/o controller hub transmits the transmit slave address, host command, data0 and data1 registers. data received from the device is stored in the data0 and data1 registers. the process call command with i2c_en set and the pec_en bit set produces undefined results. software must force either i2c_en or pec_en to 0 when running this command. see section 5.5.6 of the system management bus (smbus) specification, version 2.0 for the format of the protocol. note: for process call command, the value written into bit 0 of the transmit slave address register (smb i/o register, offset 04h) needs to be 0. note: if the i2c_en bit is set, the protocol sequence changes slightly: the command code (bits 18:11 in the bit sequence) are not sent ? as a result, the slave will not acknowledge (bit 19 in the sequence).
260 intel ? 631xesb/632xesb i/o controller hub datasheet functional description block read/write the intel ? 631xesb/632xesb i/o controller hub contains a 32-byte buffer for read and write data which can be enabled by setting bit 1 of the auxiliary control register at offset 0dh in i/o space, as opposed to a sing le byte of buffering. this 32-byte buffer is filled with write data before transmission, and filled with read data on reception. in the intel ? 631xesb/632xesb i/o controller hub, the interrupt is generated only after a transmission or reception of 32 bytes, or when the entire byte count has been transmitted/received. the byte count field is transmitted but ignored by the intel ? 631xesb/632xesb i/o controller hub as software will end the transfer after all bytes it cares about have been sent or received. for a block write, software must either force the i2c_en bit or both the pec_en and aac bits to 0 when running this command. the block write begins with a slave addre ss and a write condition. after the command code the intel ? 631xesb/632xesb i/o controller hub issues a byte count describing how many more bytes will follow in the message. if a slave had 20 bytes to send, the first byte would be the number 20 (14h), followed by 20 bytes of data. the byte count may not be 0. a block read or write is allowed to transfer a maximum of 32 data bytes. when programmed for a block write command, the transmit slave address, device command, and data0 (count) registers are sent. data is then sent from the block data byte register; the total data sent being the value stored in the data0 register. on block read commands, the first byte received is stored in the data0 register, and the remaining bytes are stored in the block data byte register. see section 5.5.7 of the system management bus (smbus) specification, version 2.0 for the format of the protocol. note: for block write, if the i2c_en bit is set, the format of the command changes slightly. the intel ? 631xesb/632xesb i/o controller hub will still send the number of bytes (on writes) or receive the number of bytes (on reads) indicated in the data0 register. however, it will not send the contents of the data0 register as part of the message. also, the block write protocol sequence changes slightly: the byte count (bits 27:20 in the bit sequence) are not sent ? as a result, the slave will not acknowledge (bit 28 in the sequence). i 2 c read this command allows the intel ? 631xesb/632xesb i/o controller hub to perform block reads to certain i 2 c devices, such as serial e 2 proms. the smbus block read supports the 7-bit addressing mode only. however, this does not allow access to devices using the i 2 c ?combined format? that has data bytes after the address. typically these data bytes correspond to an offset (address) within the serial memory chips. note: this command is supported independent of the setting of the i2c_en bit. the i 2 c read command with the pec_en bit set produces undefined results. software must force both the pec_en and aac bit to 0 when running this command. for i 2 c read command, the value written into bit 0 of the transmit slave address register (smb i/o register, offset 04h) needs to be 0. the format that is used for the command is shown in ta bl e 5 - 6 6 .
intel ? 631xesb/632xesb i/o controller hub datasheet 261 functional description the intel ? 631xesb/632xesb i/o controller hub will continue reading data from the peripheral until the nak is received. block write?block read process call the block write-block read process call is a two-part message. the call begins with a slave address and a write condition. after the command code the host issues a write byte count (m) that describes how many more bytes will be written in the first part of the message. if a master has 6 bytes to send, the byte count field will have the value 6 (0000 0110b), followed by the 6 bytes of data. the write byte count (m) cannot be 0. the second part of the message is a block of read data beginning with a repeated start condition followed by the slave address and a read bit. the next byte is the read byte count (n), which may differ from the write byte count (m). the read byte count (n) cannot be 0. the combined data payload must not exceed 32 bytes. the byte length restrictions of this process call are summarized as follows: ?m 1 byte ?n 1 byte ?m + n 32 bytes the read byte count does not include the pec byte. the pec is computed on the total message beginning with the first slave address and using the normal pec computational rules. it is highly recommended that a pec byte be used with the block write-block read process call. software must do a read to the command register (offset 2h) to reset the 32 byte buffer pointe r prior to reading the block data register. table 5-66. i 2 c* block read bit description 1start 8:2 slave address ? 7 bits 9write 10 acknowledge from slave 18:11 send data1 register 19 acknowledge from slave 20 repeated start 27:21 slave address ? 7 bits 28 read 29 acknowledge from slave 37:30 data byte 1 from slave ? 8 bits 38 acknowledge 46:39 data byte 2 from slave ? 8 bits 47 acknowledge ? data bytes from slave / acknowledge ? data byte n from slave ? 8 bits ?not acknowledge ?stop
262 intel ? 631xesb/632xesb i/o controller hub datasheet functional description note: there is no stop condition before the repeated start condition, and a nack signifies the end of the read transfer. note: e32b bit in the auxiliary control register must be set when using this protocol. see section 5.5.8 of the system management bus (smbus) specification, version 2.0 for the format of the protocol. 5.22.1.2 bus arbitration several masters may attempt to get on the bus at the same time by driving the smbdata line low to signal a start condition. the intel ? 631xesb/632xesb i/o controller hub continuously monitors the smbdata line. when the intel ? 631xesb/ 632xesb i/o controller hub is attempting to drive the bus to a 1 by letting go of the smbdata line, and it samples smbdata low, then some other master is driving the bus and the intel ? 631xesb/632xesb i/o controller hub will stop transferring data. if the intel ? 631xesb/632xesb i/o controller hub sees that it has lost arbitration, the condition is called a collision. the intel ? 631xesb/632xesb i/o controller hub will set the bus_err bit in the host status register, and if enabled, generate an interrupt or smi#. the processor is responsible for restarting the transaction. when the intel ? 631xesb/632xesb i/o controller hub is a smbus master, it drives the clock. when the intel ? 631xesb/632xesb i/o controller hub is sending address or command as an smbus master, or data bytes as a master on writes, it drives data relative to the clock it is also driving. it will not start toggling the clock until the start or stop condition meets proper setup and hold time. the intel ? 631xesb/632xesb i/o controller hub will also guarantee minimum time between smbus transactions as a master. note: the intel ? 631xesb/632xesb i/o controller hub supports the same arbitration protocol for both the smbus and the system management (smlink) interfaces. 5.22.1.3 bus timing 5.22.1.3.1 clock stretching some devices may not be able to handle their clock toggling at the rate that the intel ? 631xesb/632xesb i/o controller hub as an smbus master would like. they have the capability of stretching the low time of the clock. when the intel ? 631xesb/ 632xesb i/o controller hub attempts to release the clock (allowing the clock to go high), the clock will remain low for an extended period of time. the intel ? 631xesb/632xesb i/o controller hub monitors the smbus clock line after it releases the bus to determine whether to enable the counter for the high time of the clock. while the bus is still low, the high time counter must not be enabled. similarly, the low period of the clock can be stretched by an smbus master if it is not ready to send or receive data. 5.22.1.3.2 bus time out (intel ? 631xesb/632xesb i/o controller hub as smbus master) if there is an error in the transaction, such that an smbus device does not signal an acknowledge, or holds the clock lower than the allowed time-out time, the transaction will time out. the intel ? 631xesb/632xesb i/o controller hub will discard the cycle and set the dev_err bit. the time out minimum is 25 ms (800 rtc clocks). the time- out counter inside the intel ? 631xesb/632xesb i/o controller hub will start after the last bit of data is transferred by the intel ? 631xesb/632xesb i/o controller hub and it is waiting for a response.
intel ? 631xesb/632xesb i/o controller hub datasheet 263 functional description the 25 ms timeout counter will not count under the following conditions: 1. byte_done_status bit (smbus i/o offset 00h, bit 7) is set 2. the second_to_sts bit (tco i/o offset 06h, bit 1) is not set (this indicates that the system has not locked up) 5.22.1.4 interrupts / smi# the intel ? 631xesb/632xesb i/o controller hub smbus controller uses pirqb# as its interrupt pin. however, the system can alternatively be set up to generate smi# instead of an interrupt, by setting the smbus_smi_en bit (device 31:function 0:offset 40h:bit 1). ta bl e 5 - 6 7 to ta bl e 5 - 6 9 specify how the various enable bits in the smbus function control the generation of the interrupt, host and slave smi, and wake internal signals. the rows in the tables are additive, which means that if more than one row is true for a particular scenario then the results for all of the activated rows will occur. table 5-67. enable for smbalert# event intren (host control i/o register, offset 02h, bit 0) smb_smi_en (host configuration register, d31:f3:offset 40h, bit 1) smbalert_dis (slave command i/o register, offset 11h, bit 2) result smbalert# asserted low (always reported in host status register, bit 5) xx xwake generated x1 0slave smi# generated (smbus_smi_sts) 1 0 0 interrupt generated table 5-68. enables for smbus slave write and smbus host events event intren (host control i/o register, offset 02h, bit 0) smb_smi_en (host configuration register, d31:f3:offset 40h, bit1) event slave write to wake/ smi# command x x wake generated when asleep. slave smi# generated when awake (smbus_smi_sts). slave write to smlink_slave_smi command x x slave smi# generated when in the s0 state (smbus_smi_sts) any combination of host status register [4:1] asserted 0xnone 1 0 interrupt generated 11host smi# generated
264 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.22.1.5 smbalert# smbalert# is multiplexed with gpi[11]. when enable and the signal is asserted, the intel ? 631xesb/632xesb i/o controller hub can generate an interrupt, an smi#, or a wake event from s1?s5. note: any event on smbalert# (regardless whether it is programmed as a gpi or not), causes the event message to be sent in heartbeat mode. 5.22.1.6 smbus crc generation and checking if the aac bit is set in the auxiliary control register, the intel ? 631xesb/632xesb i/o controller hub automatically calculates and drives crc at the end of the transmitted packet for write cycles, and will check the crc for read cycles. it will not transmit the contents of the pec register for crc. the pec bit must not be set in the host control register if this bit is set, or unspecified behavior will result. if the read cycle results in a crc error, the dev_err bit and the crce bit in the auxiliary status register at offset 0ch will be set. 5.22.1.7 smbus slave interface the intel ? 631xesb/632xesb i/o controller hub?s smbus slave interface is accessed by way of the smbus. the smbus slave logic will not generate or handle receiving the pec byte and will only act as a legacy alerting protocol device. the slave interface allows the intel ? 631xesb/632xesb i/o controller hub to decode cycles, and allows an external microcontroller to perform specific actions. key features and capabilities include: ? supports decode of three types of messages: byte write, byte read, and host notify. ? receive slave address register: this is the address that the intel ? 631xesb/ 632xesb i/o controller hub decodes. a default value is provided so that the slave interface can be used without the processor having to program this register. ? receive slave data register in the smbus i/o space that includes the data written by the external microcontroller. ? registers that the external microcontroller can read to get the state of the intel ? 631xesb/632xesb i/o controller hub. ? status bits to indicate that the smbus slave logic caused an interrupt or smi# due to the reception of a message that matched the slave address. ? bit 0 of the slave status register for the host notify command ? bit 16 of the smi status register ( section 21.8.2.10 ) for all others table 5-69. enables for the host notify command host_notify_intre n (slave control i/o register, offset 11h, bit 0) smb_smi_en (host config register, d31:f3:off40h, bit 1) host_notify_wken (slave control i/o register, offset 11h, bit 1) result 0x 0none xx 1wake generated 1 0 x interrupt generated 11 xslave smi# generated (smbus_smi_sts)
intel ? 631xesb/632xesb i/o controller hub datasheet 265 functional description if a master leaves the clock and data bits of the smbus interface at 1 for 50 s or more in the middle of a cycle, the intel ? 631xesb/632xesb i/o controller hub slave logic's behavior is undefined. this is interpreted as an unexpected idle and should be avoided when performing management activities to the slave logic. note: when an external microcontroller accesses the smbus slave interface over the smbus a translation in the address is needed to accommodate the least significant bit used for read/write control. for example, if the intel ? 631xesb/632xesb i/o controller hub slave address (rcv_slva) is left at 44h (default), the external micro controller would use an address of 88h/89h (write/read). 5.22.1.7.1 format of slave write cycle the external master performs byte write commands to the intel ? 631xesb/632xesb i/o controller hub smbus slave i/f. the ?command? field (bits 11 : 18) indicate which register is being accessed. the data field (bits 20 : 27) indicate the value that should be written to that register. ta bl e 5 - 7 0 has the values associated with the registers. note: the external microcontroller is responsible to make sure that it does not update the contents of the data byte registers until they have been read by the system processor. the intel ? 631xesb/632xesb i/o controller hub overwrites the old value with any new value received. a race condition is possible where the new value is being written to the register just at the time it is being read. intel ? 631xesb/632xesb i/o controller hub will not attempt to cover this race condition (that is, unpredictable results will result in this case). . table 5-70. slave write registers register function 0command register. see ta b l e 5 - 7 1 below for legal values written to this register. 1?3 reserved 4 data message byte 0 5 data message byte 1 6?7 reserved 8 reserved 9?ffh reserved table 5-71. command types (sheet 1 of 2) command type description 0 reserved. 1 wake/smi#. this command wakes the system if it is not already awake. if system is already awake, an smi# is generated. note: the smb_wak_sts bit will be set by this command, even if the system is already awake. the smi handler should then clear this bit. 2 unconditional powerdown. this command sets the pwrbtnor_sts bit, and has the same effect as the powerbutton override occurring. 3 hard reset without cycling: this command causes a hard reset of the system (does not include cycling of the power supply). this is eq uivalent to a write to the cf9h register with bits 2:1 set to 1, but bit 3 set to 0. 4 hard reset system. this command causes a hard reset of the system (including cycling of the power supply). this is equivalent to a write to the cf9h register with bits 3:1 set to 1. 5 disable the tco messages. this command will disable the intel ? 631xesb/632xesb i/o controller hub from sending heartbeat and event messages (as described in section 5.16.2 ). once this command has been executed, heartbeat and event message reporting can be re- enabled only by assertion and deassertion of the rsmrst# signal.
266 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.22.1.7.2 format of read command the external master performs byte read commands to the intel ? 631xesb/632xesb i/o controller hub smbus slave i/f. the ?command? field (bits 18 : 11) indicate which register is being accessed. the data field (bits 30 : 37) contain the value that should be read from that register. ta b l e 5 - 7 2 shows read cycle format. ta b l e 5 - 7 3 shows data value for slave read registers . 6 wd reload: reload watchdog timer. 7 reserved. 8 smlink_slv_smi. when intel ? 631xesb/632xesb i/o controller hub detects this command type while in the s0 state, it sets the smlink_slv_smi_sts bit (see section 21.9.6 ). this command should be used only if the system is in an s0 state. if the message is received during s1?s5 states, the intel ? 631xesb/632xesb i/o controller hub acknowledges it, but the smlink_slv_smi_sts bit does not get set. note: it is possible that the system transitions out of the s0 state at the same time that the smlink_slv_smi command is received. in this case, the smlink_slv_smi_sts bit may get set but not serviced before the system goes to sleep. once the system returns to s0, the smi associated with this bit would then be generated. software must be able to handle this scenario. 9?ffh reserved. table 5-71. command types (sheet 2 of 2) command type description table 5-72. read cycle format bit description driven by comment 1 start external master 8:2 slave address ? 7 bits external master must match value in receive slave address register 9 write external master always 0 10 ack intel ? 631xesb/632xesb i/ o controller hub 18:11 command code? 8 bits external master indicates which register is being accessed. see ta b l e 5 - 7 3 19 ack intel ? 631xesb/632xesb i/ o controller hub 20 repeated start external master 27:21 slave address external master must match value in receive slave address register 28 read external master always 1 29 ack intel ? 631xesb/632xesb i/ o controller hub 37:30 data type intel ? 631xesb/632xesb i/ o controller hub value depends on register being accessed, see ta b l e 5 - 7 3 38 not ack external master 39 stop external master
intel ? 631xesb/632xesb i/o controller hub datasheet 267 functional description behavioral notes according to smbus protocol, read and write messages always begin with a start bit ? address ? write bit sequence. when the intel ? 631xesb/632xesb i/o controller hub detects that the address matches the value in the receive slave address register, it will assume that the protocol is always followed and ignore the write bit (bit 9) and signal an acknowledge during bit 10. in other words, if a start ? address ? read occurs (which table 5-73. data value for slave read registers register bits description 07:0reserved 12:0system power state 000 = s0 001 = s1 010 = reserved 011 = s3 100 = s4 101 = s5 110 = reserved 111 = reserved 7:3 reserved 23:0reserved 7:4 reserved 3 5:0 watchdog timer current value. note that watchdog timer has 10 bits, but this field is only 6 bits. if the current value is greater than 3fh, intel ? 631xesb/632xesb i/o controller hub will always report 3fh in this field. 7:6 reserved 401 = the intruder detect (intrd_det) bit is set. this indicates that the system cover has probably been opened. 11 = bti temperature event occurred. this bit will be set if the intel ? 631xesb/632xesb i/o controller hub?s thrm# input signal is active. need to take after polarity control. 2 doa processor status . this bit will be 1 to indicate that the processor is dead 31 = second_to_sts bit set. this bit will be set after the second timeout (second_to_sts bit) of the watchdog timer occurs. 6:4 reserved. will always be 0, but software should ignore. 7 reflects the value of the gpi[11]/smbalert# pin (and is dependent upon the value of the gpi_inv[11] bit. if the gpi_inv[11] bit is 1, then the value in this bit equals the level of the gpi[11]/smbalert# pin (high = 1, low = 0). if the gpi_inv[11] bit is 0, then the value of this bit will equal the inverse of the level of the gpi[11]/smbalert# pin (high = 0, low = 1). 50 fwh bad bit. this bit will be 1 to indicate that the fwh read returned ffh, which indicates that it is probably blank. 1 battery low status. ?1? if the batlow# pin is a ?0?. 2 cpu power failure status: ?1? if the cpupwr_flr bit in the gen_pmcon_2 register is set. 7:3 reserved 6 7:0 contents of the message 1 register. for the description of this register. 7 7:0 contents of the message 2 register. for the description of this register. 8 7:0 contents of the wdstatus register. for the description of this register. 9~ffh 7:0 reserved
268 intel ? 631xesb/632xesb i/o controller hub datasheet functional description is illegal for smbus read or write protocol), and the address matches the intel ? 631xesb/632xesb i/o controller hub?s slave address, the intel ? 631xesb/ 632xesb i/o controller hub will still grab the cycle. also according to smbus protocol, a read cycle contains a repeated start ? address ? read sequence beginning at bit 20. once again, if the address matches the intel ? 631xesb/632xesb i/o controller hub?s receive slave address, it will assume that the protocol is followed, ignore bit 28, and proceed with the slave read cycle. note: an external microcontroller must not attempt to access the intel ? 631xesb/632xesb i/o controller hub?s smbus slave logic until at least 1 second after both rtcrst# and rsmrst# are deasserted (high). 5.22.1.7.3 format of host notify command the intel ? 631xesb/632xesb i/o controller hub tracks and responds to the standard host notify command as specified in the system management bus (smbus) specification, version 2.0 . the host address for this command is fixed to 0001000b. if the intel ? 631xesb/632xesb i/o controller hub already has data for a previously- received host notify command which has not been serviced yet by the host software (as indicated by the host_notify_sts bit), then it will nack following the host address byte of the protocol. this allows the host to communicate non-acceptance to the master and retain the host notify address and data values for the previous cycle until host software completely services the interrupt. note: host software must always clear the host_notify_sts bit after completing any necessary reads of the address and data registers. ta b l e 5 - 7 4 shows the host notify format. table 5-74. host notify format bit description driven by comment 1 start external master 8:2 smb host address ? 7 bits external master always 0001_000 9 write external master always 0 10 ack (or nack) intel ? 631xesb/ 632xesb i/o controller hub intel ? 631xesb/632xesb i/o controller hub nacks if host_notify_sts is 1 17:11 device address ? 7 bits external master indicates the address of the master; loaded into the notify device address register 18 unused ? always 0 external master 7-bit-only address; this bit is inserted to complete the byte 19 ack intel ? 631xesb/ 632xesb i/o controller hub 27:20 data byte low ? 8 bits external master loaded into the notify data low byte register 28 ack intel ? 631xesb/ 632xesb i/o controller hub 36:29 data byte high ? 8 bits external master loaded into the notify data high byte register 37 ack intel ? 631xesb/ 632xesb i/o controller hub 38 stop external master
intel ? 631xesb/632xesb i/o controller hub datasheet 269 functional description 5.22.2 smbus slave interface in pci express to pci-x bridge the smbus address is set upon pwrok by sampling smbus[5] and smbus[3:1]. when the pins are sampled, the resulting intel ? 631xesb/632xesb i/o controller hub address will be as follows: table 5-75. smbus address configuration this smbus controller has access to all internal registers in pci express bridge/switch. it can perform reads and writes from all registers through the particular interface's configuration or memory space. i/oxapic memory space is accessible through its configuration space. shpc memory space is directly accessible from the smbus controller via the smbus memory command. 5.22.2.1 smbus commands this smbus supports six smbus commands: ?block write ?block read ?word write ?word read ?byte write ?byte read sequencing these commands will initiate internal accesses to intel ? 631xesb/632xesb i/o controller hub's configuration and memory registers. for high reliability, intel ? 631xesb/632xesb i/o controller hub also supports the optional packet error checking feature (crc-8) and is enabled or disabled with each transaction. every configuration and memory read or write first consists of an smbus write sequence which initializes the bus number, device, function number, memory address offset etc. the term sequence is used since these variables can be initialized by the smbus master with a single block write or multiple word or byte writes. the last write in the sequence that completes the initialization performs the internal configuration/ memory read or write. the smbus master can then initiate a read sequence which returns the status of the internal read or write command and also the data in case of a read. each smbus transaction has an 8-bit command driven by the master. the command encodes the following information: bit value 71 61 5smbus[5] 40 3smbus[3] 2smbus[2] 1smbus[1]
270 intel ? 631xesb/632xesb i/o controller hub datasheet functional description table 5-76. smbus command encoding 5.22.2.2 initialization sequence all configuration and memory read and writes are accomplished through an smbus write(s) and later followed by an smbus read (for a read command). the smbus write sequence is used to initialize the: ?bus number, ?device/function and ? 12-bit register number (in 2 separate bytes on smbus) for the configuration access. each of the parameters above is sent on smbus in separate bytes. the register number parameter is initialized with two bytes and intel ? 631xesb/632xesb i/o controller hub ignores the most significant 4 bits of the second byte that initializes the register number. for memory reads and writes, the write sequence initializes the ?destination memory ? 24-bit memory address offset (in 3 separate bytes on smbus) the destination memory is a byte of information that indicates the internal memory space to access in the intel ? 631xesb/632xesb i/o controller hub 64-bit pci hub. the 24-bit address offset is used to address any internal memory with up to an offset of 24 bits. the intel ? 631xesb/632xesb i/o controller hub 64-bit pci hub uses only bit description 7 begin: the begin bit when set indicates the first transaction of the read or write sequence 6 end: the end bit when set indicates the last transaction of the read or write sequence 5 memory/config: indicate whether memory or configuration space is being accesses in this smbus sequence. value of ?1? indicates memory and a value of ?0? indicate configuration. 4 pec enable: indicates that pec is enabled when set. when set, each transaction in the sequence ends with an extra crc byte. pci express bridge/switch would check for crc on writes and generate crc on reads. pec does not include the command byte itself 3:2 internal command: 00 ? read dword 01 ? write byte 10 ? write word 11 ? write dword all access are naturally aligned to the access width. this field specifies the internal command to be issued by the smbus slave logic to the pci express bridge/switch. 1:0 smbus command: 00 ? byte 01 ? word 10 ? block 11 ? rsvd this field specifies the smbus command to be issu ed on the smbus. this field is used as an indication of the length of transfer so that the slave knows when to expect the pec packet (if enabled).
intel ? 631xesb/632xesb i/o controller hub datasheet 271 functional description 12 bits of address, and ignores the most significant 12 bits of the 24-bit address. the intel ? 631xesb/632xesb i/o controller hub 64-bit pci hub slave interface always expects 24 bits of address from the smbus master though it uses only 12 bits. the initialization of the information can be accomplished through any combination of the supported smbus write commands (block, word or byte). the internal command field for each write should specify the same internal command every time (read or write). after all the information is set up, the last write (end bit is set) initiates an internal read or write command. on an internal read if the data is not available before the slave interface acknowledges this last write command (ack), the slave will clock stretch until the data returns to the smbus interface unit. on a internal write, if the write is not complete before the slave interface acknowledges this last write command (ack), the salve will clock stretch until the write completes internally. if an error occurs (internal timeout, target or master abort on the internal switch) during the internal access, the last write command will receive a nack. 5.22.2.3 configuration and memory reads intel ? 631xesb/632xesb i/o controller hub supports only read dword to internal register space. all configuration and me mory reads are accomplished through an smbus write(s) and later followed by an sm bus read to read the status and the read data. for smbus read transactions, the last byte of data (or the pec byte if enabled) is nacked by the master to indicate the end of the transaction. the smbus read command returns the status of the previous internal command and the data associated previous internal read command. ta b l e 5 - 7 7 shows the status field encoding: table 5-77. smbus status byte encoding examples of configuration and memory reads are shown in figure 5-24 to figure 5-29 . for the definition of the diagram conventions below, refer to the system management bus (smbus) specification, version 2.0. bit description 7 internal timeout. this bit is set if an smbus request is not completed in 2ms internally. 6 reserved 5 internal master abort 4 internal target abort 3:1 reserved 0 successful
272 intel ? 631xesb/632xesb i/o controller hub datasheet functional description figure 5-24. dword configuration read protocol (smbus block write/block read, pec enabled) figure 5-25. dword memory read protocol (smbus block write/block read, pec enabled) figure 5-26. dword configuration read protocol (smbus word write/word read, pec enabled) s 11x0_xxx w a cmd = 11010010 a s r 11x0_xxx r a byte count = 5 a status a data[31:24] a data[23:16] a data[15:8] a data[7:0] a s 11x0_xxx w a cmd = 11010010 a byte count = 4 a bus number a device/function a reg number[15:8] a reg number [7:0] a pec clock stretch a p pec n p s 11x0_xxx w a cmd = 11110010 a byte count = 4 a destination mem a add offset[23:16] a add offset[15:8] a s 11x0_xxx w a cmd = 11110010 a s r 11x0_xxx r a byte count = 5 a status a data[31:24] a data[23:16] a data[15:8] a data[7:0] a pec n p add offset[7:0] a pec clock stretch a p s 11x0_xxx w a cmd = 10010001 a bus number a device/function a pec s 11x0_xxx w a cmd = 01010001 a register num[15:8] a p s 11x0_xxx w a cmd = 10010001 sr 11x0_xxx r a status s 11x0_xxx w a cmd = 00010001 a sr 11x0_xxx r a data[23:16] a data[15:8] a pec n p a a data[31:24] a pec n p a register num[7:0] a pec clock stretch a p s 11x0_xxx w a cmd = 01010000 a sr 11x0_xxx r a data[7:0] a pec n p
intel ? 631xesb/632xesb i/o controller hub datasheet 273 functional description figure 5-27. dword configuration read protocol (smbus block write/block read, pec disabled) figure 5-28. dword memory read protocol (smbus block write/block read, pec disabled) figure 5-29. dword configuration read protocol (smbus word write/word read, pec disabled) 5.22.2.4 configuration and memory writes configuration and memory writes are accomplished through a series of smbus writes. as with reads, a write sequence is first used to initialize the bus number, device, function, and register number for the configuration access and the destination memory, address offset for the memory write. the writing of this information can be accomplished through any combination of the supported smbus write commands (block, word or byte). note: on smbus, there is no concept of byte enables. therefore, the register number written to the slave is assumed to be aligned to the length of the internal command. in other words, for a write byte internal command, the register number specifies the byte address. for a write dword internal command, the two least-significant bits of the register number are ignored. this is different from pci where the byte enables are used to indicate the byte of interest. after all the information is set up, the smbus master initiates one or more writes which sets up the data to be written. the final write (end bit is set) initiates an internal configuration or memory write. the slave interface could potentially clock stretch the last data write until the write completes without error. if an error occurred, the smbus interface nacks the last write operation just before the stop bit. s 11x0_xxx w a cmd = 11000010 a s r 11x0_xxx r a byte count = 5 a status a data[31:24] a data[23:16] a data[15:8] a data[7:0] s 11x0_xxx w a cmd = 11000010 a byte count = 4 a bus number a device/function a reg number[15:8] a reg number [7:0] clock stretch a p n p s 11x0_xxx w a cmd = 11100010 a byte count = 4 a destination mem a add offset[23:16] a add offset[15:8] a s 11x0_xxx w a cmd = 11100010 a s r 11x0_xxx r a byte count = 5 a status a data[31:24] a data[23:16] a data[15:8] a data[7:0] n p add offset[7:0] clock stretch a p s 11x0_xxx w a cmd = 10110001 a dest mem a add offset[23:16] a pec s 11x0_xxx w a cmd = 01110001 a add offset[15:8] a p s 11x0_xxx w a cmd = 10110001 sr 11x0_xxx r a status s 11x0_xxx w a cmd = 00110001 a sr 11x0_xxx r a data[23:16] a data[15:8] a pec n p a a data[31:24] a pec n p a add offset[7:0] a pec clock stretch a p s 11x0_xxx w a cmd = 01110000 a sr 11x0_xxx r a data[7:0] a pec n p
274 intel ? 631xesb/632xesb i/o controller hub datasheet functional description examples of configuration writes are illustrated below. figure 5-30 to figure 5-34 are with pec enabled. when pec is disabled, there is no pec byte in any of the sequences and the pec enable bit in the command field is 0. for the definition of the diagram conventions below, refer to the system management bus (smbus) specification, version 2.0. figure 5-30. dword configuration write protocol (smbus block write, pec enabled) figure 5-31. dword memory write protocol (smbus word write, pec enabled) figure 5-32. word configuration write protocol (smbus byte write, pec enabled) figure 5-33. dword memory read protocol (smbus block write/block read, pec disabled) a s 11x0_xxx w a cmd = 11011110 a byte count = 8 a bus number a device/function a reg number[15:8] a reg number [7:0] a data[31:24] data[23:16] a data[16:8] a data[7:0] a pec clock stretch a p s 11x0_xxx w a cmd = 10111101 a dest mem a add offset[23:16] a pec s 11x0_xxx w a cmd = 00111101 a add offset[15:8] a p a add offset[7:0] a pec a p clock stretch a p s 11x0_xxx w a cmd = 00111101 a data[31:24] a data[23:16] a pec a p s 11x0_xxx w a cmd = 01111101 a data[15:8] a data[7:0] a pec s 11x0_xxx w a cmd = 10011000 a bus number a device/function a pec s 11x0_xxx w a cmd = 00011000 a register num[15:8] a p a pec a p clock stretch a p s 11x0_xxx w a cmd = 00011000 a data[w:x] a pec a p s 11x0_xxx w a cmd = 01011000 a data[y:z] a pec s 11x0_xxx w a cmd = 00011000 pec a p a s 11x0_xxx w a cmd = 00011000 a register num[7:0] a pec a p s 11x0_xxx w a cmd = 10110001 a dest mem a add offset[23:16] a pec s 11x0_xxx w a cmd = 01110001 a add offset[15:8] a p s 11x0_xxx w a cmd = 10110001 sr 11x0_xxx r a status s 11x0_xxx w a cmd = 00110001 a sr 11x0_xxx r a data[23:16] a data[15:8] a pec n p a a data[31:24] a pec n p a add offset[7:0] a pec clock stretch a p s 11x0_xxx w a cmd = 01110000 a sr 11x0_xxx r a data[7:0] a pec n p
intel ? 631xesb/632xesb i/o controller hub datasheet 275 functional description figure 5-34. dword configuration read protocol (smbus word write/word read, pec disabled) 5.22.2.5 error handling the smbus slave interface handles two types of errors: internal and pec. internal errors can occur for example when the smbus tries to access the apic or shpc config/ memory space and these units in intel ? 631xesb/632xesb i/o controller hub are stuck servicing the pci express interface which is broke. intel ? 631xesb/632xesb i/o controller hub internally times out in such a case and this error manifests itself as a not-acknowledge (nack) for the read or write command (end bit is set). other internal errors include the read or write command receiving a master or target abort on the internal interface and these conditions also cause a nack on the smbus. if the master receives a nack, the entire transaction should be reattempted. if the master supports packet error checking (pec) and the pec enable bit in the command is set, then the pec byte is checked in the slave interface. if the check indicates a failure, then the slave will nack the pec packet and not issue the command on the internal interface. note: an smbus master must either do pec on all transactions in a sequence or not do it at all, that is, it cannot turn on pec in the middle of a sequence. note: a pec error in the middle of a sequence must be re-started from the beginning of the sequence, that is, the begin bit set 5.22.2.6 smbus interface reset the master in two ways can reset the slave interface state machine in intel ? 631xesb/ 632xesb i/o controller hub: ? the master holds scl low for 25ms cumulative. cumulative in this case means that all the "low time" for scl is counted between the start and stop bit. if this totals 25ms before reaching the stop bit, the interface is reset. ? the master holds scl continuously high for 50ms. besides these, the smbus interface in intel ? 631xesb/632xesb i/o controller hub is also reset on a pwrok, rstin or an in-band warm reset from pci express. s 11x0_xxx w a cmd = 10110001 a dest mem a add offset[23:16] a pec s 11x0_xxx w a cmd = 01110001 a add offset[15:8] a p s 11x0_xxx w a cmd = 10110000 s r 11x0_xxx r a status s 11x0_xxx w a cmd = 00110000 a s r 11x0_xxx r a data[31:24] a pec n p a a pec n p a add offset[7:0] a pec clock stretch a p s 11x0_xxx w a cmd = 00110000 a s r 11x0_xxx r a data23:16] a pec n p s 11x0_xxx w a cmd = 00110000 a s r 11x0_xxx r a data15:8] a pec n p s 11x0_xxx w a cmd = 01110000 a s r 11x0_xxx r a data[7:0] a pec n p
276 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.22.2.7 configuration access arbitration if the cpu is currently accessing a unit, sm bus cannot access it. whoever gets in first wins arbitration. the other agent is stalled until the first agent finishes. the micro- architecture of this area is critical. the reason for the sm bus interface is to access registers when the system may be unstable or locked, which can result with broken queues. any register access through sm bus must be able to proceed while the system is stuck. 5.23 ac?97 controller (audio d31:f5, modem d31:f6) note: all references to ac?97 in this document refer to the audio codec ?97 component specification, version 2.3. for further information on the operation of the ac-link protocol, see the audio codec ?97 component specification, version 2.3. the intel ? 631xesb/632xesb i/o controller hub ac?97 controller features include: ? supports 20 bit samples for stereo pcm out ? supports multiple sample rate ac'97 2.0 codecs (48 khz and below) ? independent pci functions for audio and modem ? independent bus master logic for dual microphone input, dual pcm audio input (2- channel stereo per input), pcm audio outp ut (2-, 4- or 6-channel audio), modem input, modem output and s/pdif output ? 20-bit sample resolution ? support for 16 codec-implemented gpios ? single modem line ? configure up to three codecs with three acz_sdin pins ta b l e 5 - 7 8 shows a detailed list of features supported by the intel ? 631xesb/632xesb i/o controller hub ac?97 digital controller
intel ? 631xesb/632xesb i/o controller hub datasheet 277 functional description . note: throughout this document, references to d31:f5 indicate that the audio function exists in pci device 31, function 5. references to d31:f6 indicate that the modem function exists in pci device 31, function 6. note: throughout this document references to tertiary, third, or triple codecs refer to the third codec in the system connected to the acz_sdin2 pin. the audio codec ?97 table 5-78. features supported by intel ? 631xesb/632xesb i/o controller hub ac?97 digital controller feature description system interface ? isochronous low latency bus master memory interface ? scatter/gather support for word-aligned buffers in memory (all mono or stereo 20-bit and 16-bit data types are supported, no 8-bit data types are supported) ? data buffer size in system memory from 3 to 65535 samples per input ? data buffer size in system memory from 0 to 65535 samples per output ? independent pci audio and modem functions with configuration and i/o spaces ? ac?97 codec registers are shadowed in system memory by way of driver ? ac?97 codec register accesses are serialized by way of semaphore bit in pci i/o space (new accesses are not allowed while a prior access is still in progress) power management ? power management by way of pci power management pci audio function ? read/write access to audio codec regist ers 00h?3ah and vendor registers 5ah?7eh ? 20-bit stereo pcm output, up to 48 khz (l,r, center, sub-woofer, l-rear and r-rear channels on slots 3,4,6,7,8,9,10,11) ? 16-bit stereo pcm input, up to 48 khz (l,r channels on slots 3,4) ? 16-bit mono mic in w/ or w/o mono mix, up to 48 khz (l,r channel, slots 3,4) (mono mix supports mono hardware aec reference for speakerphone) ? 16-bit mono pcm input, up to 48 khz from dedicated mic adc (slot 6) (supports speech recognition or stereo hardware aec ref for speakerphone) ? during cold reset acz_rst# is held low until after post and software deassertion of acz_rst# (supports passive pc_beep to speaker connection during post) pci modem function ? read/write access to modem codec registers 3ch?58h and vendor registers 5ah?7eh ? 16-bit mono modem line1 output and input, up to 48 khz (slot 5) ? low latency gpio[15:0] by way of hardwired update between slot 12 and pci i/o register ? programmable pci interrupt on modem gpio input changes by way of slot 12 gpio_int ? sci event generation on acz_sdin[2:0] wake-up signal ac-link ? ac?97 2.3 ac-link interface ? variable sample rate output support by way of ac?97 slotreq protocol (slots 3,4,5,6,7,8,9,10,11) ? variable sample rate input support by way of monitoring of slot valid tag bits (slots 3,4,5,6) ? 3.3 v digital operation meets ac?97 2.3 dc switching levels ? ac-link i/o driver capability meets ac?97 2.3 triple codec specifications ? codec register status reads must be returned with data in the next ac-link frame, per audio codec ?97 component specification, version 2.3. multiple codec ? triple codec addressing: all ac?97 audio codec register accesses are addressable to codec id 00 (primary), codec id 01 (secondary), or codec id 10 (tertiary). ? modem codec addressing: all ac ?97 modem codec register accesses are addressable to codec id 00 (primary) or codec id 01 (secondary). ? triple codec receive capability by way of acz_sdin[2:0] pins (acz_sdin[2:0] frames are internally va lidated, synchronized, and or?d depending on the steer enable bit status in the sdm register) ? acz_sdin mapping to dma engine mapping capability allows for simultaneous input from two different audio codecs. notes: 1. audio codec ids are remappable and not limited to 00,01,10. 2. modem codec ids are remappable and limited to 00, 01. 3. when using multiple codecs, the modem codec must be id 01.
278 intel ? 631xesb/632xesb i/o controller hub datasheet functional description component specification, version 2.3 refers to non-primary codecs as multiple secondary codecs. to avoid confusion and excess verbiage, this datasheet refers to it as the third or tertiary codec. 5.23.1 pci power management this power management section applies for all ac?97 controller functions. after a power management event is detected, the ac?97 controller wakes the host system. the following sections describe these events and the ac?97 controller power states. device power states the ac?97 controller supports d0 and d3 pci power management states. the following are notes regarding the ac?97 controller implementation of the device states: 1. the ac?97 controller hardware does not inherently consume any more power when it is in the d0 state than it does in d3 state. however, software can halt the dma engine prior to entering these low power states such that the maximum power consumption is reduced. 2. in the d0 state, all implemented ac?97 controller features are enabled. 3. in d3 state, accesses to the ac?97 controller memory-mapped or i/o range results in master abort. 4. in d3 state, the ac?97 controller interrupt will never assert for any reason. the internal pme# signal is used to signal wake events, and so forth. 5. when the device power state field is written from d3 hot to d0, an internal reset is generated. see section 20.1 for general rules on the effects of this reset. 6. ac?97 sts bit is set only when the audio or modem resume events were detected and their respective pme enable bits were set. 7. gpio status change interrupt no longer has a direct path to the ac?97 sts bit. this causes a wake up event only if the modem controller was in d3 8. resume events on acz_sdin[2:0] cause resume interrupt status bits to be set only if their respective controllers are not in d3. 9. edge detect logic prevents the interrupts from being asserted in case the ac?97 controller is switched from d3 to d0 after a wake event. 10. once the interrupt status bits are set, they will cause pirqb# if their respective enable bits were set. one of the audio or the modem drivers will handle the interrupt. figure 5-35. intel ? 631xesb/632xesb i/o controller hub-based audio codec?97 specification, version 2.3 audio in (record) audio out (6 channel playback ) pc mic.2 s/pdif* output mic.1 modem
intel ? 631xesb/632xesb i/o controller hub datasheet 279 functional description 5.23.2 ac-link overview the intel ? 631xesb/632xesb i/o controller hub is an ac?97 2.3 controller that communicates with companion codecs by way of a digital serial link called the ac-link. all digital audio/modem streams and command/status information is communicated over the ac-link. the ac-link is a bi-directional, serial pcm digital stream. it handles multiple input and output data streams, as well as control register accesses, employing a time division multiplexed (tdm) scheme. the ac-link architecture provides for data transfer through individual frames transmitted in a serial fashion. each frame is divided into 12 outgoing and 12 incoming data streams, or slots. the architecture of the intel ? 631xesb/ 632xesb i/o controller hub ac-link allows a maximum of three codecs to be connected. figure 5-36 shows a three codec topology of the ac-link for the intel ? 631xesb/632xesb i/o controller hub. the ac-link consists of a five signal interface between the intel ? 631xesb/632xesb i/o controller hub and codec(s). note: the intel ? 631xesb/632xesb i/o controller hub?s ac ?97 controller shares the signal interface with the intel high definition audio controller. however, only one controller may be enabled at a time. figure 5-36. ac?97 2.3 controller-codec connection intel ? 631xesb/632xesb i/o controller hub primary codec ac / mc / amc ac97_ich6-codec_conn acz_sdin2 acz_sdin1 acz_rst# acz_sdout acz_sync acz_bit_clk secondary codec ac / mc / amc tertiary codec ac / mc / amc acz_sdin0
280 intel ? 631xesb/632xesb i/o controller hub datasheet functional description intel ? 631xesb/632xesb i/o controller hub core well outputs may be used as strapping options for the intel ? 631xesb/632xesb i/o controller hub, sampled during system reset. these signals may have weak pullups/pulldowns; however, this will not interfere with link operation. intel ? 631xesb/632xesb i/o controller hub inputs integrate weak pulldowns to prevent floating traces when a secondary and/or tertiary codec is not attached. when the shut off bit in the control register is set, all buffers will be turned off and the pins will be held in a steady state, based on these pullups/ pulldowns. acz_bit_clk is fixed at 12.288 mhz and is sourced by the primary codec. it provides the necessary clocking to support the twelve 20-bit time slots. ac-link serial data is transitioned on each rising edge of acz_bit_clk. the receiver of ac-link data samples each serial bit on the falling edge of acz_bit_clk. if acz_bit_clk makes no transitions for four consecutive pci clocks, the intel ? 631xesb/632xesb i/o controller hub assumes the primary codec is not present or not working. it sets bit 28 of the global status register (i/o offset 30h). all accesses to codec registers with this bit set will return data of ffh to prevent system hangs. synchronization of all ac-link data transactions is signaled by the ac?97 controller by way of the acz_sync signal, as shown in figure 5-37 . the primary codec drives the serial bit clock onto the ac-link, which the ac?97 controller then qualifies with the acz_sync signal to construct data frames. acz_sync, fixed at 48 khz, is derived by dividing down acz_bit_clk. acz_sync remains high for a total duration of 16 acz_bit_clk at the beginning of each frame. the portion of the frame where acz_sync is high is defined as the tag phase. the remainder of the frame where acz_sync is low is defined as the data phas e. each data bit is sampled on the falling edge of acz_bit_clk. the intel ? 631xesb/632xesb i/o controller hub has three acz_sdin pins allowing a single, dual, or triple codec configuration. when multiple codecs are connected, the primary, secondary, and tertiary codecs can be connected to any acz_sdin line. the intel ? 631xesb/632xesb i/o controller hub does not distinguish between codecs on its acz_sdin[2:0] pins, however the registers do distinguish between acz_sdin0, acz_sdin1, and acz_sdin2 for wake events, and so forth. if using a modem codec it is recommended to connect it to acz_sdin1. figure 5-37. ac-link protocol sync bit_clk sdin slot(1) time slot "valid" bits 20.8us (48 khz) slot 1 slot 2 019 019 0 19 0 slot 3 slot 12 81.4 ns 12.288 mhz slot(2) "0" "0" "0" slot(12) ("1" = time slot contains valid pcm data) 19 codec ready end of previous audio frame tag phase data phase
intel ? 631xesb/632xesb i/o controller hub datasheet 281 functional description see your platform design guide for a matrix of valid codec configurations. the intel ? 631xesb/632xesb i/o controller hub does not support optional test modes as outlined in the audio codec ?97 component specification, version 2.3 . 5.23.2.1 register access in the intel ? 631xesb/632xesb i/o controller hub implementation of the ac-link, up to three codecs can be connected to the sdout pin. the following mechanism is used to address the primary, secondary, and tertiary codecs individually. the primary device uses bit 19 of slot 1 as the direction bit to specify read or write. bits [18:12] of slot 1 are used for the register index. for i/o writes to the primary codec, the valid bits [14:13] for slots 1 and 2 must be set in slot 0, as shown in ta b l e 5 - 7 9 . slot 1 is used to transmit the register address, and slot 2 is used to transmit data. for i/o reads to the primary codec, only slot 1 should be valid since only an address is transmitted. for i/o reads only slot 1 valid bit is set, while for i/o writes both slots 1 and 2 valid bits are set. the secondary and tertiary codec registers are accessed using slots 1 and 2 as described above, however the slot valid bits for slots 1 and 2 are marked invalid in slot 0 and the codec id bits [1:0] (bit 0 and bit 1 of slot 0) is set to a non-zero value. this allows the secondary or tertiary codec to monitor the slot valid bits of slots 1 and 2, and bits [1:0] of slot 0 to determine if the access is directed to the secondary or tertiary codec. if the register access is targeted to the secondary or tertiary codec, slot 1 and 2 will contain the address and data for the register access. since slots 1 and 2 are marked invalid, the primary codec will ignore these accesses. when accessing the codec registers, only one i/o cycle can be pending across the ac- link at any time. the intel ? 631xesb/632xesb i/o controller hub implements write posting on i/o writes across the ac-link (that is, writes across the link are indicated as complete before they are actually sent across the link). in order to prevent a second i/ o write from occurring before the first one is complete, software must monitor the cas bit in the codec access semaphore register which indicates that a codec access is pending. once the cas bit is cleared, then another codec access (read or write) can go through. the exception to this being reads to offset 54h/d4h/154h (slot 12) which are returned immediately with the most recently received slot 12 data. writes to offset 54h, d4h, and 154h (primary, secondary and tertiary codecs), get transmitted across the ac-link in slots 1 and 2 as a normal register access. slot 12 is also updated immediately to reflect the data being written. the controller does not issue back to back reads. it must get a response to the first read before issuing a second. in addition, codec reads and writes are executed only once across the link, and are not repeated. table 5-79. output tag slot 0 bit primary access example secondary access example description 15 1 1 frame valid 14 1 0 slot 1 valid, command address bit (primary codec only) 13 1 0 slot 2 valid, command data bit (primary codec only) 12: 3 x x slot 3?12 valid 2 0 0 reserved 1:0 00 01 codec id (00 reserved for primary; 01 indicate secondary; 10 indicate tertiary)
282 intel ? 631xesb/632xesb i/o controller hub datasheet functional description 5.23.3 ac-link low power mode the ac-link signals can be placed in a low-power mode. when the ac?97 powerdown register (26h), is programmed to the appropriate value, both acz_bit_clk and acz_sdin will be brought to, and held at a logic low voltage level. acz_bit_clk and acz_sdin transition low immediately after a write to the powerdown register (26h) with pr4 enabled. when the ac?97 controller driver is at the point where it is ready to program the ac-link into its low-power mode, slots 1 and 2 are assumed to be the only valid stream in the audio output frame. the ac?97 controller also drives acz_sync, and acz_sdout low after programming ac?97 to this low power, halted mode once the codec has been instructed to halt, acz_bit_clk, a special wake up protocol must be used to bring the ac-link to the active mode since normal output and input frames can not be communicated in the absence of acz_bit_clk. once in a low-power mode, the intel ? 631xesb/632xesb i/o controller hub provides three methods for waking up the ac-link; external wake event, cold reset and warm reset. note: before entering any low-power mode where the link interface to the codec is expected to be powered down while the rest of the system is awake, the software must set the ?shut off? bit in the control register. 5.23.3.1 external wake event codecs can signal the controller to wake the ac-link, and wake the system using acz_sdin. figure 5-38. ac-link powerdown timing sdout tag sync bit_clk write to 0x20 data pr4 slot 12 prev. frame tag slot 12 prev. frame sdin note: bit_clk not to scale
intel ? 631xesb/632xesb i/o controller hub datasheet 283 functional description the minimum acz_sdin wake up pulse width is 1 us. the rising edge of acz_sdin0, acz_sdin1 or acz_sdin2 causes the intel ? 631xesb/632xesb i/o controller hub to sequence through an ac-link warm reset and set the ac97_sts bit in the gpe0_sts register to wake the system. the primary codec must wait to sample acz_sync high and low before restarting acz_bit_clk as diagrammed in figure 5-39 . the codec that signaled the wake event must keep its acz_sdin high until it has sampled acz_sync having gone high, and then low. the ac-link protocol provides for a cold reset and a warm reset. the type of reset used depends on the system?s current power down state. unless a cold or register reset (a write to the reset register in the codec) is performed, wherein the ac?97 codec registers are initialized to their default values, registers are required to keep state during all power down modes. once powered down, activation of the ac-link by way of re-assertion of the acz_sync signal must not occur for a minimum of four audio frame times following the frame in which the power down was triggered. when ac-link powers up, it indicates readiness by way of the codec ready bit. 5.23.4 ac?97 cold reset a cold reset is achieved by asserting acz_rst# for 1 s. by driving acz_rst# low, acz_bit_clk, and acz_sdout will be activated and all codec registers will be initialized to their default power on reset values. acz_rst# is an asynchronous ac?97 input to the codec. 5.23.5 ac?97 warm reset a warm reset re-activates the ac-link with out altering the current codec register values. a warm reset is signaled by driving acz_sync high for a minimum of 1 s in the absence of acz_bit_clk. within normal frames, acz_sync is a synchronous ac?97 input to the codec. however, in the absence of acz_bit_clk, acz_sync is treated as an asynchronous input to the codec used in the generation of a warm reset. the codec must not respond with the activation of acz_bit_clk until acz_sync has been sampled low again by the codec. this prevents the false detection of a new frame. figure 5-39. sdin wake signaling sdout tag sync bit_clk write to 0x20 data pr4 slot 12 prev. frame tag slot 12 prev. frame sdin tag slot 1 slot 2 power down frame wake event sleep state new audio frame tag slot 1 slot 2
284 intel ? 631xesb/632xesb i/o controller hub datasheet functional description note: on receipt of wake up signalling from the codec, the digital controller issues an interrupt if enabled. software then has to issue a warm or cold reset to the codec by setting the appropriate bit in the global control register. 5.23.6 hardware assist to determ ine acz_sdin used per codec software first performs a read to one of the audio codecs. the read request goes out on acz_sdout. since the intel ? 631xesb/632xesb i/o controller hub allows one read to be performed at a time on the link, eventually the read data will come back in on one of the acz_sdin[2:0] lines. the codec does this by indicating that status data is valid in its tag, then echoes the read address in slot 1 followed by the read data in slot 2. the new function of the intel ? 631xesb/632xesb i/o controller hub hardware is to notice which acz_sdin line contains the read return data, and to set new bits in the new register indicating which acz_sdin line the register read data returned on. if it returned on acz_sdin0, bits [1:0] contain th e value 00. if it returned on acz_sdin1, the bits contain the value 01, and so forth. intel ? 631xesb/632xesb i/o controller hub hardware can set these bits every time register read data is returned from a func tion 5 read. no special command is necessary to cause the bits to be set. the new driver/bios software reads the bits from this register when it cares to, and can ignore it otherwise. when software is attempting to establish the codec-to-acz_sdin mapping, it will single feed the read request and not pipeline to ensure it gets the right mapping, we cannot ensure the serialization of the access. 5.24 intel ? high definition audio controller overview the intel ? 631xesb/632xesb i/o controller hub?s intel high definition audio controller shares pins with the ac?97 controller. however, only one controller may be enabled at a time. the intel ? 631xesb/632xesb i/o controller hub?s controller communicates with the external codec(s) over the intel high definition audio serial link. the controller consists of a set of dma engines that are used to move samples of digitally encoded data between system memory and an external codec(s). the intel ? 631xesb/632xesb i/o controller hub implements four output dma engines and 4 input dma engines. the output dma engines move digital data from system memory to a d-a converter in a codec. intel ? 631xesb/632xesb i/o controller hub implements a single serial data output signal (acz_sdo) that is connected to all external codecs. the input dma engines move digital data from the a-d converter in the codec to system memory. the intel ? 631xesb/632xesb i/o controller hub implements three serial digital input signals (acz_sdi[2:0]) supporting up to three codecs. audio software renders outbound and processes inbound data to/from buffers in system memory. the location of individual buffers is described by a buffer descriptor list (bdl) that is fetched and processed by the controller. the data in the buffers is arranged in a predefined format. the output dma engines fetch the digital data from memory and reformat it based on the programmed sample rate, bit/sample and number of channels. the data from the output dma engines is then combined and serially sent to the external codecs over the intel high definition audio link. the input dma engines receive data from the codecs over the intel high definition audio link and format the data based on the programmable attributes for that stream. the data is then written to memory in the predefined format for software to process. each dma
intel ? 631xesb/632xesb i/o controller hub datasheet 285 functional description engine moves one stream of data. a single codec can accept or generate multiple streams of data, one for each a-d or d-a converter in the codec. multiple codecs can accept the same output stream processed by a single dma engine. codec commands and responses are also transported to and from the codecs by way of dma engines.
286 intel ? 631xesb/632xesb i/o controller hub datasheet functional description
intel ? 631xesb/632xesb i/o controller hub datasheet 287 electrical characteristics 6 electrical characteristics this document only contains dc characteristics information. please refer to rs - intel ? 631xesb/632xesb i/o controller hub eds addendum for ac characteristics (including ac timing diagrams for intel ? 631xesb/632xesb i/o controller hub). notes: 1. these numbers are pre-silicon estimates. actual numbers will be included after measured. 2. the current numbers shown above are based on a x8 upci express connection to the mch, if a x4 upci express connection is used, subtract 240 ma for the 1.5 v current draw. 3. internal 2.5 v and 1.5 vsus are assumed enabled: 1.5 vsus rails (vccsus1/vccsus2/vccusb via intvrmen) as well as 2.5 v rails (vccp25ide and vccp25pci via gio[25]) 4. these numbers assume worst case rms values table 6-1. intel ? 631xesb/632xesb i/o controller hub power consumption estimates with wake-on-lan (lan tied to aux power) platform voltage rail current in s0 current in s3 current in s4 current in s5 current in g3 logic 1.5v core 3.82 a n/a n/a n/a n/a i/o 1.5v core 1.98a n/a n/a n/a n/a 1.5v aux 1.97a 0.62a n/a n/a n/a 3.3v core 1.8a n/a n/a n/a n/a 3.3v sus 70ma 30ma 40ma 40ma n/a 3.3v aux 0.27a 0.07a n/a n/a n/a vcc5ref 150ua n/a n/a n/a n/a vcc5refsus 10ma 10ma 10ma 10ma off vccrtc n/a n/a n/a n/a 6ua table 6-2. intel ? 631xesb/632xesb i/o controller hub power consumption estimates with wake-on-lan (lan tied to core power) platform voltage rail current in s0 current in s3 current in s4 current in s5 current in g3 logic 1.5v core 5.54a n/a n/a n/a n/a i/o 1.5v core 2.23a n/a n/a n/a n/a 1.5v aux 2.07 n/a n/a n/a n/a 3.3v core n/a n/a n/a n/a n/a 3.3v sus 70ma 30ma 40ma 40ma n/a 3.3v aux n/a n/a n/a n/a n/a vcc5ref 150ua n/a n/a n/a n/a vcc5refsus 10ma 10ma 10ma 10ma n/a vccrtc n/a n/a n/a n/a 6ua
288 intel ? 631xesb/632xesb i/o controller hub datasheet electrical characteristics table 6-3. dc characteristic input signal association symbol associated signals v ih1 /v il1 (5 v tolerant) pci signals: ad[31:0], cbe[3:0]#, devsel#, frame#, irdy#, trdy#, stop#, par, perr#, plock#, serr#, req[3:0]#, req[4}#/gpi[40], req[5}#/gpi[1], req[6}#/gpi[0] pci-x signals: px133en, pxad[63:0], pxpme#, pxcbe[7:0]#, pxdevsel#, pxframe#, pxirdy#, pxm66en, pxpar, pxpcixcap, pxperr#, pxplock#, pxpme#, pxreq[5:0]#, pxserr#, pxstop#, pxtrdy#, pxack64#, pxpar64, pxreq64# interrupt signals: pirq[d:a]#,p irq[h:e]#/gpi[5:2] (open drain) v ih2 /v il2 (5 v tolerant) interrupt signals: ideirq v ih3 /v il3 clock signals: clk48, clk14 power management signals: mch_sync#, thrm#, vrmpwrgd sata signals: satagp[3:0]/gpi[31:29,26] gpio signals: gpi[13,12,8], gpio[34,33] v ih4 /v il4 clock signals: pciclk, lpc/firmware hub signals: lad[3:0]/fwh[3:0],l drq[0]#, ldrq[1]#/ gpi[41] power management signals: lan_pwr_good gpio signals: desktop: gpi[32,7,6] interrupt signals: serirq cpu signals: a20gate,rcin# usb signals: oc[3:0]#,oc [5:4]#/gpi[10:9],oc [7:6]#/gpi[15:14] v ih5 /v il5 smbus signals: smbclk, smbdata system management signals: smbalert#/gpi[11],sm link[1:0] v il6 /v ih6 lan signals: sern[1:0], serp[1:0], ser_clk_in flash and eeprom signals: flsh_so, ee_do expansion bus signals : ebus_ad[24:0] rs-232 signals : rs232_cts, rs232_dcd, rs232_dsr, rs232_ri, rs232_sin v il7 /v ih7 processor signals: ferr#, thrmtrip# v imin8 /v imax8 enterprise southbridge interface signals : esi[3:0]rx(p,n) v il9 /v ih9 real time clock signals: rtcx1 vimin10/vimax10 sata signals: sata[3:0]rx[p,n] vil11/vih11 ac?97/intel ? high definition audio signals: acz_sdin[2:0] ac?97 signals: acz_bit_clk v il12 /v ih12 /v cross(abs) clock signals: esi_clk100n, esi_clk100p, sata_clkn, sata_clkp v il13 /v ih13 power management signals: pwrbtn#, ri# sys_reset#, wake# system management signals: linkalert# gpio signals: gpio[28, 27, 25, 24] other signals: tp[3] v il14 /v ih14 power management signals: pwrok, rsmrst#, rtcrst# system management signals: intruder# other signals: intvrmen v di / v cm / v se (5 v tolerant) usb signals: usbp[7:0][p,n] (low-speed and full-speed) v hssq / v hsdsc / v hscm (5 v tolerant) usb signals: usbp[7:0][p,n] (in high-speed mode)
intel ? 631xesb/632xesb i/o controller hub datasheet 289 electrical characteristics table 6-4. dc input characteristics (sheet 1 of 2) symbol parameter min max unit notes v il1 input low voltage ? 0.5 0.3*(vcc33) v note 9 v ih1 input high voltage 0.5*(vcc33) v5ref + 0.5 v v il2 input low voltage ? 0.5 0.8 v v ih2 input high voltage 2.0 v5ref + 0.5 v v il3 input low voltage ? 0.5 0.8 v v ih3 input high voltage 2.0 vcc33 + 0.5 v v il4 input low voltage ? 0.5 0.3*(vcc33) v v ih4 input high voltage 0.5*(vcc33) vcc33 + 0.5 v v il5 input low voltage ? 0.5 0.8 v v ih5 input high voltage 2.1 vccpsus + 0.5 v v il6 input low voltage ? 0.5 0.3(vcc33) v v ih6 input high voltage 0.6(vcc33) vcc33 + 0.5 v v il7 input low voltage ? 0.5 0.58(v_cpu_io) v v ih7 input high voltage 0.73(v_cpu_io) v_cpu_io+0.5 v v imin8 minimum input voltage 175 mvp - pnote 6 v imax8 maximum input voltage 1200 mvp - pnote 6 v il9 input low voltage ? 0.5 0.10 v v ih9 input high voltage 0.40 1.2 v v imin10 minimum input voltage 325 mvp - pnote 7 v imax10 maximum input voltage 600 mvp-p note 7 v il11 input low voltage ? 0.5 0.35(vcc33) v v ih11 input high voltage 0.65(vcc33) (vcc33)+0.5 v v il12 input low voltage ? 0.150 0.150 v v ih12 input high voltage 0.660 0.850 v v il13 input low voltage -0.5 0.8 v v ih13 input high voltage 2.0 vccpsus+0.5 v v il14 input low voltage -0.5 0.8 v v ih14 input high voltage 2.0 vccrtc+0.5 v note 8 v cross(abs) absolute crossing point 0.250 0.550 v v+ low to high input threshold 1.5 2.0 v note 1 v ? high to low input threshold 1.0 1.5 v note 1 vhys difference between input thresholds: (v+current value) ? (v ? current value) 320 mv note 1 vthravg average of thresholds: ((v+current value) + (v ? current value))/2 1.3 1.7 v note 1 vring ac voltage at recipient connector ? 1 6 v note 1,2 v di differential input sensitivity 0.2 v note 3,5 v cm differential common mode range 0.8 2.5 v note 4,5
290 intel ? 631xesb/632xesb i/o controller hub datasheet electrical characteristics notes: 1. applies to ultra dma modes greater than ultra dma mode 4 2. this is an ac characteristic that represents transient values for these signals 3. vdi = | usbpx[p] usbpx[n] 4. includes vdi range 5. applies to high-speed usb 2.0 6. pci express* mvdiff p-p = |petp[x] - petn[x]| 7. sata vdiff, tx (vimax/min10 is measured at the sata connector on the transmit side (generally, the motherboard connector), where sata mvdiff p-p = |sata[x]txp/rxp - sata[x]txn/rxn| 8. vccrtc is the voltage applied to the vcctrc well of the intel ? 631xesb/632xesb i/o controller hub. when the system is in a g3 state, this is generally supplied by the coin cell battery, but for s5 and greater, this is generally by vccpsus. 9. for pci-x* signals, v il1 =0.35*(vcc33). v se single-ended receiver threshold 0.8 2.0 v note 5 v hssq hs squelch detection threshold 100 150 mv note 5 v hsdsc hs disconnect detection threshold 525 625 mv note 5 v hscm hs data signaling common mode voltage range ? 50 500 mv note 5 v hssq hs squelch detection threshold 100 150 mv note 5 v hsdsc hs disconnect detection threshold 525 625 mv note 5 v hscm hs data signaling common mode voltage range ? 50 500 mv note 5 table 6-4. dc input characteristics (sheet 2 of 2) symbol parameter min max unit notes table 6-5. dc characteristic output signal association (sheet 1 of 2) symbol associated signals v oh1 /v ol1 ide signals: dd[15:0], diow#/dstop, dior#/dwstb/rdmardy, ddack#, da[2:0], dcs[3,1]# v oh2 /v ol2 processor signals: a20m#, cpuslp#, ignne#, init#, intr, nmi, smi#, stpclk# v oh3 /v ol3 pci signals: ad[31:0],c/be[3:0]#,devsel#, frame#,irdy#, par,perr#, plock#,serr#,stop#,trdy# pci-x signals : pxpclko[6:0], rstin#, ac?97/high definition audio signals: acz_rst#, acz_sdout, acz_sync high definition audio signals: acz_bit_clk v ol4 /v oh4 smbus signals: smbclk (1) , smbdata (1) system management signals: smlink[1:0] (1) v ol5 /v oh5 power management signals: pltrst#,sl p_s3#, slp_s4#,sl p_s5#,su sclk#, sus_stat# gpio signals: gpo[24,23,20:18], gpio[34,33,28,27,25] other signals: spkr sata signal: sataled# processor interface signal: init3_3v# lan signals: lan_pwr_good, setn[1:0], setp[1:0] flash and eeprom signals: flsh_si, flsh_sck, flsh_ce#, ee_cs#, ee_di, ee_sk expansion bus signals : ebus_adv#/ebus_ras#, ebus_alat/ebus_cke, ebus_be_[1:0]#, ebus_ce_[2:1]#, ebus_clk_2, ebus_frst#, ebus_oe#/ ebus_cas#, ebus_we# rs-232 signals : rs232_dtr, rs232_rts, rs232_sout v ol6 /v oh6 usb signals: usbp[7:0][p,n] in low and full speed modes v omin7 /v omax7 enterprise southbridge interface signals: esi[3:0]tx(p,n)
intel ? 631xesb/632xesb i/o controller hub datasheet 291 electrical characteristics note: these signals are open drain. v omin8 /v omax8 sata signals: sata[3:0]tx[p,n] v ol9 /v oh9 lpc/firmware hub signals: lad[3:0]/fwh[3:0], lframe#/fwh[4] pci signals: pcirst#, gnt[3:0]#, gnt[4]/gpio[48], gnt[5]/gpo[17], gnt[6]/ gpo[16] gpio signals: gpo[21], gpio[32] pci-x signals: pxgnt[5:0]#, pxpcirst# v ol10 /v oh10 processor signal: cpupwrgd/gpo[49] (1) v hsoi v hsoh v hsol v chirpj v chirpk usb signals: usbp[7:0][p:n] in high speed modes table 6-5. dc characteristic output signal association (sheet 2 of 2) symbol associated signals
292 intel ? 631xesb/632xesb i/o controller hub datasheet electrical characteristics notes: 1. the cpupwrgd, serr#, pirq[a:h], smbdata, smbc lk, linkalert#, and smlink[1:0] signal has an open drain driver and sataled# has an open collector driver, and the v oh spec does not apply. this signal must have external pull up resistor. 2. pci express* mvdiff p-p = |petp[x] - petn[x] 3. sata vdiff, tx (vomax/min8)is measured at the sata connector on the transmit side (generally, the motherboard connector), where sata mvdiff p-p = |sata[x]txp/rxp - sata[x]txn/rxn| 4. maximum lol for cpupwrgd is 12 ma for short durations (<500 ms per 1.5 s) and 9 ma for long durations. table 6-6. dc output characteristics symbol parameter min max unit i ol / i oh notes v ol1 output low voltage 0.51 v v oh1 output high voltage vcc33 ? 0.51 v v ol2 output low voltage 0.255 v 3 ma v oh2 output high voltage v_cpu_io-0.3 v -0.3 ma note 1 v ol3 output low voltage 0.1(vcc33) v 6 ma v oh3 output high voltage 0.9(vcc33) v -0.5 ma v ol4 output low voltage 0.4 v 4ma v oh4 output high voltage vccpsus - 0.5 v 2ma note 1 v ol5 output low voltage 0.4 v 6 ma v oh5 output high voltage vcc33 - 0.5 v -2 ma note 1 v ol6 output low voltage 0.4 v 5ma v oh6 output high voltage vcc33 ? 0.5 v -2 ma note 1 v omin7 minimum output voltage 800 mvp-p note 2 v omax7 maximum output voltage 1200 mvp-p note 2 v omin8 minimum output voltage 400 mvp-p note 3 v omax8 maximum output voltage 600 mvp-p note 3 v ol9 output low voltage 0.1(vcc33) v 1.5 ma v oh9 output high voltage 0.9(vcc33) v -0.5 ma v ol10 output low voltage 0.25 6 ma note 4 v oh10 output high voltage note 1 v hsoi hs idle level ? 10.0 10.0 mv v hsoh hs data signaling high 360 440 mv v hsol hs data signaling low ? 10.0 10.0 mv v chirpj chirp j level 700 1100 mv v chirpk chirp k level ? 900 ? 500 mv
intel ? 631xesb/632xesb i/o controller hub datasheet 293 electrical characteristics note: 1. includes clk14, clk48, lan_clk and pciclk. 2. vccaubg, vccbgesi, vcca3_3 and vccasatabg are filtered voltages attached to the same source as vcc33/vccpsus, and must meet the same voltage tolerance at the input to their filters. notes: 1. vccape, vccaupll, vccapll1_5 and vccaesi are filtered voltages attached to the same source as vcc1_5/ vccsus1_5, and must meet the same voltage tolerance at the input to their filters. 2. if vccsus is tied to vaux, the tolerance spec for vccsus will be +/ ? 3%. table 6-7. other dc characteristics symbol parameter min max unit notes v5ref intel ? 631xesb/632xesb i/o controller hub core well reference voltage 4.75 5.25 v vcc33 i/o buffer voltage 3.135 3.465 v note 2 v_cpu_io processor i/f 1.0 1.425 v v5ref_sus suspend well reference voltage 4.75 5.25 v vccpsus suspend well i/o buffer voltage 3.135 3.465 v note 2 vccaux3_3 bmc io supply 3.135 3.465 v vccrtc battery voltage 2.0 3.6 v v it+ hysteresis input rising threshold 1.9 v applied to usbp[7:0][p,n] v it ? hysteresis input falling threshold 1.3 v applied to usbp[7:0]p,n] v di differential input sensitivity 0.2 v |(usbpx+,usbpx ? )| v cm differential common mode range 0.8 2.5 v includes v di v crs output signal crossover voltage 1.3 2.0 v v se single ended rcvr threshold 0.8 2.0 v i li1 ata input leakage current ? 200 200 a (0 v < v in < 5 v) i li2 pci_3v hi-z state data line leakage ? 10 10 a (0 v < v in < 3.3 v) i li3 pci_5v hi-z state data line leakage ? 70 70 a max v in = 2.7 v min v in = 0.5 v i li4 input leakage current ? clock signals ? 100 +100 a note 1 c in input capacitance ? all other 12 pf f c = 1 mhz c out output capacitance 12 pf f c = 1 mhz c i/o i/o capacitance 12 pf f c = 1 mhz typical value c l xtal1 6 pf c l xtal2 6 pf table 6-8. intel ? 631xesb/632xesb i/o controller hub 1.5 v supply rail tolerances symbol parameter ac min dc min nom dc max acmax unit notes vcc, vccsus2, vrefpci 1.5 v supply voltage 1.425 1.455 1.5 1.575 1.605 v note 1&2
294 intel ? 631xesb/632xesb i/o controller hub datasheet electrical characteristics notes: 1. specified at the measurement point into a timing and voltage compliance test load as shown in figure 6-1 and measured over any 250 consecutive tx uis. (also refer to the transmitter compliance eye diagram as shown in figure 6-2 .) 2. the transmitter input impedance shall result in a differ ential return loss greater than or equal to 12 db and a common mode return loss greater than or equal to 6 db over a frequency range of 50 mhz to 1.25 ghz. this input impedance requirement applies to all valid input levels. the reference impedance for return loss measurements is 50 to ground for both the d+ and d- line (that is, as measured by a vector network analyzer with 50 probes ? see figure 6-1 ). note that the series capacitors c tx is optional for the return loss measurement. table 6-9. pci express* differential transmitter (tx) dc output specifications symbol parameter min nom max units comments v tx-diffp-p differential peak to peak output voltage 0.800 1.2 v v tx-diffp-p = 2*|v tx-d+- v tx-d- | see note 1. v tx-de-ratio de-emphasized differential output voltage (ratio) -3.0 -3.5 -4.0 db this is the ratio of the v tx-diffp-p of the second and following bits after a transition divided by the v tx-diffp-p of the first bit after a transition see note 1. v tx-cm-acp ac peak common mode output voltage 20 mv v tx-cm-acp = |v tx-d+ + v tx-d- | / 2 ? v tx-cm-dc v tx-cm-dc = dc (avg) of |v tx-d+ + v tx-d-| / 2 see note 1. v tx-cm-dc-active-idle-delta absolute delta of dc common mode voltage during l0 and electrical idle 0100mv|v tx-cm-dc? v tx-cm-idle-dc[during electrical idle] | =100 mv v tx-cm-dc = dc (avg) of |v tx-d+ + v tx- d- | / 2 [electrical idle] see note 1. v tx-cm-dc-line-delta absolute delta of dc common mode voltage between d+ and d-. 025mv|v tx-cm-dc-d+? v tx-cm-dc-d- | = 25 mv v tx-cm-dc-d+ = dc (avg) of |v tx-d+ | v tx-cm-dc-d- = dc (avg) of |v tx-d- | see note 1. v tx-idle-diffp electrical idle differential peak output voltage 020mvv tx-idle-diffp = |v tx-idle-d+ - v tx-idle- d- | = 20 mv see note 1. v tx-rcv-detect amount of voltage change allowed during receiver detection 600 mv the total amount of voltage change that a transmitter can apply to sense whether a low impedance receiver is present. rl tx-diff differential return loss 12 db measured over 50 mhz to 1.25 ghz see note 2. rl tx-cm common mode return loss 6 db measured over 50 mhz to 1.25 ghz see note 2. z tx-diff-dc dc differential tx impedance 80 100 120 w tx dc differential mode low impedance z tx-com- dc transmitter common mode high impedance state (dc) 40 k w required tx d+ as well as d- dc impedance during all states. c tx ac coupling capacitor 75 200 nf all transmitters shall be ac coupled. the ac coupling is required either within the media or within the transmitting component itself.
intel ? 631xesb/632xesb i/o controller hub datasheet 295 electrical characteristics figure 6-1. compliance test/measurement load figure 6-2. minimum transmitter timing and voltage output compliance specification
296 intel ? 631xesb/632xesb i/o controller hub datasheet electrical characteristics figure 6-3. minimum receiver eye timing and voltage compliance specification
intel ? 631xesb/632xesb i/o controller hub datasheet 297 electrical characteristics notes: 1. specified at the measurement point and measured over any 250 consecutive uis. the test load in figure 6-1 should be used as the rx device when taking measurements (also refer to the receiver compliance eye diagram as shown in figure 6-3 ). if the clocks to the rx and tx are not derived from the same clock chip the tx ui must be used as a reference for the eye diagram. 2. the receiver input impedance shall result in a differen tial return loss greater than or equal to 15 db with the d+ line biased to 300 mv and the d- line biased to -300 mv and a common mode return loss greater than or equal to 6 db (no bias required) over a frequency range of 50 mhz to 1.25 ghz. this input impedance requirement applies to all valid input levels. the reference impedance for return loss measurements for is 50 to ground for both the d+ and d- line (that is, as measured by a vector network analyzer with 50 probes - see figure 6-1 ). note: that the series capacitors c tx is optional for the return loss measurement. 3. impedance during all ltssm states. when transition from a fundamental reset to detect (the initial state of the ltssm) there is a 5 ms transition time before receiver termination values must be met on all unconfigured lanes of a port. table 6-10. pci express* differential receiver (rx) dc input specifications symbol parameter min nom max units comments v rx-diffp-p differential input peak to peak voltage 0.175 1.200 v v rx-diffp-p = 2*|v rx-d+ - v rx-d- | see note 1. v rx-cm-acp ac peak common mode input voltage 150 mv v rx-cm-ac =|v rx-d+ + vrx-d- |/2 ? v rx-cm-dc v rx-cm-dc = dc (avg) of |v rx-d+ +v rx-d- |/2 during l0 see note 1. rl rx-diff differential return loss 15 db measured over 50 mhz to 1.25 ghz with the d+ and d- lines biased at +300 mv and -300 mv, respectively. see note 2. rl rx-cm common mode return loss 6 db measured over 50 mhz to 1.25 ghz with the d+ and d- lines biased at 0 v. see note 2 z rx-diff-dc dc differential input impedance 80 100 120 w rx dc differential mode impedance. see note 3. z rx- dc dc input impedance 40 50 60 w required rx d+ as well as d- dc impedance (50 20% tolerance). see notes 1 and 3. z rx- high-imp- dc powered down dc input impedance 200 k w required rx d+ as well as d- dc impedance when the receiver terminations do not have power. see note 4. v rx-idle-det-diffp-p electrical idle detect threshold 65 175 mv v rx-idle-det-diffp-p =2*|v rx-d+ - v rx-d- | measured at the package pins of the receiver. table 6-11. dc specifications for pci symbol parameter pci units condition notes min max vcc33 supply voltage 3.0 3.6 v v ih input high voltage 0.5vcc33 vcc33 +0.5 v v il input low voltage -0.5 0.3vcc33 v v ipu input pull-up voltage 0.7vcc33 v 1 i il input leakage current 10 a0 < v in < vcc33 2
298 intel ? 631xesb/632xesb i/o controller hub datasheet electrical characteristics notes: 1. this specification should be guaranteed by design. it is the minimum voltage to which pull-up resistors are calculated to pull a floated network. applications sens itive to static power utilization must assure that the input buffer is conducting minimum current at this input voltage. 2. input leakage currents include hi-z output leakage for all bi-directional buffers with tri-state outputs. 3. absolute maximum pin capacitance for a pci/pci-x* input except pxpclki and idsel. v oh output high voltage 0.9vcc33 v i out = -500 a v ol output low voltage 0.1vcc33 v i out = 1500 a c in input pin capacitance 10 pf 3 c clk pxpclki pin capacitance r eserved 5 reserved 8 reserved pf res erved c idsel idsel pin capacitance 8pf 4 l pin pin inductance 20 nh 5 table 6-12. dc specifications for pci and mode 1 pci-x* 3.3 v signaling symbol parameter pci pci-x* units condition notes min max min max vcc33 supply voltage 3.0 3.6 3.0 3.6 v v ih input high voltage 0.5vcc33 vcc33 +0.5 0.5vcc33 vcc33 +0.5 v v il input low voltage -0.5 0.3vcc33 -0.5 0.35vcc33 v v ipu input pull-up voltage 0.7vcc33 0.7vcc33 v 1 i il input leakage current 10 10 a0 < v in < vcc33 2 v oh output high voltage 0.9vcc33 0.9vcc33 v i out = -500 a v ol output low voltage 0.1vcc33 0.1vcc33 v i out = 1500 a c in input pin capacitance 10 10 pf 3 c clk pxpclki pin capacitance 5858pf c idsel idsel pin capacitance 88pf4 l pin pin inductance 20 20 nh 5 i off pxpme# input leakage 11 av o 3.6 v vcc33 off or floating 6 table 6-11. dc specifications for pci symbol parameter pci units condition notes min max
intel ? 631xesb/632xesb i/o controller hub datasheet 299 electrical characteristics 4. for conventional pci only, lower capacitance on this input-only pin allows for non-resistive coupling to pxad[xx]. pci-x configuration transactions drive the ad bus four clocks before pxframe# asserts (see section 2.7.2.1 of the pci-x protocol addendum to the pci local bus specification, revision 2.0a ). 5. for conventional pci, this is a recommendation, no t an absolute requirement. for pci-x, this is a requirement. 6. this input leakage is the maximum allowable leakage into the pxpme# open drain driver when power is removed from vcc33 of the component. this assumes that no event has occurred to cause the device to attempt to assert pxpme#. ta bl e 6 - 1 3 summarizes the dc specifications for 1.5 v signaling. combined maximum power drawn by all supply voltages in any one slot must not exceed 25 w. table 6-13. pci hot plug slot power requirements supply voltage maximum operating current 1 maximum adapter card decoupling capacitance minimum supply voltage skew rate maximum supply voltage skew rate +5 v 5 a 3000 f 25 v/s 3300 v/s +3.3 v 7.6 a 3000 f 16.5 v/s 3300 v/s +12 v 500 ma 300 f 60 v/s 33000 v/s -12 v 100 ma 150 f 60 v/s 66000 v/s table 6-14. general lan dc electrical characteristic for 3.3 v i/o pads symbol parameter conditions min max units voh output high voltage ioh = 10 ma, vcc=min 2.40 vcc v vol output low voltage iol = -10 ma, vcc=min vss 0.4 v voh_mon vol in monitor mode ioh = 10 ma 2.90 vcc v vol_mon vol in monitor mode iol = -10 ma 0.57 1.03 v vih input high voltage vih > vih_min; vcc=min 2 ? v vil input low voltage vih > vil_max; vcc=min - 0.8 v vhyst input hysteresis inside vih / vil window 15 180 mv iih input high current vcc = max; vin = 3.3 v - 100 ua iil input low current vcc = max; vin = 0.4 v -100 ua ipold input pull down vin=pwrp 14.8 29.9 k ipulu input pull up vin=vss 15.3 29.7 k ioff current at iddq mode for 3.3 v supply only 90 168 ua
300 intel ? 631xesb/632xesb i/o controller hub datasheet electrical characteristics . figure 6-4. kumeran transmitter test point (tp-t) table 6-15. kumeran transmit specifications at tp-t description value units notes data rate 1000 mb/s figure 6-4 nominal signaling speed 1250 mbd(mega baud) figure 6-4 clock tolerance 100 ppm figure 6-4 differential output amplitude (p-p) 750-1350 mv figure 6-4 return loss 10 db figure 6-4 impedance at connection (tp-t) 10030 w figure 6-4 impedance at termination (tp-t) 10010 w figure 6-4 figure 6-5. kumeran receive test point (tp-r) 10 nf +/- 1% 10 nf +/- 1% 50 ohm +/- 1% 50 ohm +/-1% tp-t 10 nf +/- 1% 10 nf +/- 1% 50 ohm +/- 1% 50 ohm +/- 1% tp-r
intel ? 631xesb/632xesb i/o controller hub datasheet 301 electrical characteristics table 6-16. kumeran receiver specifications at tp-r description value units notes data rate 1000 mb/s figure 6-5 nominal signaling speed 1250 mbd(mega baud) figure 6-5 clock tolerance 100 ppm figure 6-5 sensitivity (p-p) 200-1920 mv figure 6-5 differential skew 175 ps figure 6-5 differential return loss 10 db figure 6-5 common mode return loss 6 db figure 6-5 input impedance, each signal to ground with a 50 resistor tdr (time domain reflector) rise time tp-r 85 ps figure 6-5 impedance at connection tp-r 10030 w figure 6-5 table 6-17. kumeran transmit electrical idle characteristics parameter description min max units notes v tx-cm-dc-active- idle-delta absolute delta of dc common mode voltage during l0 and electrical idle 0 100 mv v tx-idle-diffp electrical idle differential peak output voltage 020mv t tx-idle-min minimum time spent in electrical idle 50 ui (bit times) t tx-idle-set-to- idle maximum time to transition to a valid electrical idle after sending an electrical idle ordered set 20 ui (bit times) t tx-idle-to-to- diff-data maximum time to transition to valid tx specifications after leaving an electrical idle condition 20 ui (bit times) table 6-18. kumeran receive electrical idle characteristics parameter description min max units notes v rx-idle-det- diffp-p electrical idle detect threshold 65 200 mv t rx-idle-det-diff- entertime unexpected electrical idle enter detect threshold integration time 10 ms table 6-19. lan and bmc general dc electrical characteristics for 3.3v i/o pads symbol parameter conditions min max units voh output high voltage ioh=10ma, vcc=min 2.40 vcc v vol output low voltage ioh=-10ma, vcc=min vss 0.4 v voh_mon voh in monitor mode ioh=10ma 2.90 vcc v vol_mon vol in monitor mode iol=-10ma 0.57 1.03 v vih input high voltage vih>vih_min; vcc=min 2 - v vil input low voltage vil 302 intel ? 631xesb/632xesb i/o controller hub datasheet electrical characteristics iil input low current vcc=max; vin=0.4v -100 - ua ipold input pull down vin=pwrp 14.8 29.9 kohm ipulu input pull up vin=vss 15.3 29.7 kohm ioff current at iddq mode for 3.3v supply only 90 168 ua table 6-19. lan and bmc general dc electr ical characteristics for 3.3v i/o pads symbol parameter conditions min max units
intel ? 631xesb/632xesb i/o controller hub datasheet 303 component ballout 7 component ballout 7.1 intel ? 631xesb/632xesb i/o controller hub ballout note: all the intel ? 631xesb/632xesb i/o controller hub ballouts in following tables are the superset of intel ? 631xesb/632xesb i/o controller hub sku definition ( section 1.3 ). table 7-1. intel ? 631xesb/632xesb i/o controller hub ballout (left third) (sheet 1 of 2) 36 35 34 33 32 31 30 29 28 27 26 25 at vss sdp2_7 vss rs232_cts rs232_sout vccaux3_3 ebus_frst# ebus_adv#/ ebus_ras# vss ebus_be_0# at ar vss sdp2_6 vccaux3_3 rs232_dsr rs232_dtr vss rs232_ri reserved vss ebus_alat/ ebus_cke ebus_we# ar ap vss sdp2_5 vss sdp2_4 sdp1_2 vccaux3_3 rs232_dcd rs232_rts vss ebus_oe#/ ebus_cas# ebus_clk_2 vss ap an lan_pwr_good vccaux3_3 sdp2_3 sdp2_2 vss sdp2_1 rs232_sin vss ebus_ad[12] ebus_ad[10] vss ebus_ad[5] an am vss flbsintex1 perst# vccaux3_3 sdp2_0 sdp1_1 vccaux3_3 lan1_dis# ebus_ad[11] vss ebus_ad[7] ebus_ad[6] am al flbsintex0 flbsd0 vss pe_wake# sdp1_0 vss sdp0_2 lan0_dis# vss ebus_ad[9] ebus_ad[8] vss al ak flbsd1 vss smbd4 smbalrt_4 vccaux3_3 sdp0_0 sdp0_1 vccaux3_3 ebus_ad[24] ebus_ad[22] vss ebus_ad[19] ak aj vss flsh_ce# smbclk4 vss smbalrt_3 sdram_ba0/ sdp3_2/ led0_2 vss sdram_ba1/ sdp3_3/ led0_3 ebus_ad[23] vccaux3_3 ebus_ad[21] ebus_ad[20] aj ah flsh_si flsh_sck vss smbd3 smbclk3 vccaux3_3 sdram_a10/ sdp3_6/ led1_2 sdram_ad12/ spd3_1/ led0_1 vss sdram_a9/ sdp3_5/ led1_1 sdram_a11/ sdp3_7/ led1_3 vccaux3_3 ah ag flsh_so vss smbd1 smbclk1 vss smbalrt_2 pxpwrok vccaux3_3 tck trst# vss sdp3_0/ led0_0 ag af vss ee_di vss vss smbd2 smbclk2 vss tdo tdi vccaux3_3 tms vccaux3_3 af ae ee_sk ee_do vss smbclk0 smbd0 vss strap_1 reserved vss reserved strap_0 vss ae ad ee_cs# vss2 nc reserved vss esb2_test2 reserved vss2 strap_2 reserved vss nc ad ac vss link_1 vss vss2 vss vss vss reserved vss vss vss vss ac ab reserved link_0 vss vss vss vss2 vss vss vss vss vss vss2 ab aa reserved vss2 vss vss vss vss vss vss vss vss vss vss2 aa y vss setp1 setn1 vccse vss vss vccse vss vss vccse vss vccse y w serp1 sern1 vss seicompi sercompo vss setn0 setp0 vss vss vccse vss w v ser_clk_in vss vssapll1_5 vccapll1_5 vss vssa3_3 vcca3_3 vss sern0 serp0 vss nc v u vss ad[18] acz_rst# vss acz_sdin[2] acz_sdin[1] vss vcc5ref1 esb2_test0 vss esb2_test1 nc u t ad[0] ad[1] vss acz_sync acz_bit_clk vss ad[16] frame# vss vccp25pci vccppci vss t r ad[2] vss ad[21] acz_sdin[0] vss acz_sdout ad[17] vccppci nc vccppci vss vccppci r p vccppci gnt[3]# gnt[4]#/ gpio[48] vccppci pltrst# pme# vss gnt[1]# trdy# vccppci vccppci vccppci p n ad[8] ad[9] vss ad[3] ad[4] vccppci cbe[2]# irdy# vss vccsus2 vccppci vss n m ad[11] vccppci ad[6] ad[5] vss ad[19] ad[20] vccppci pciclk vccsus1 vss vccpsus m l vss cbe[1]# ad[10] vccppci ad[23] ad[22] vss ad[7] req[2]# vss vccpsus vccpsus l k ad[15] par vss ad[12] ad[13] vccppci req[4]#/ gpi[40] cbe[0]# vccpsus strap_4 vccpsus vccpsus k j serr# vss ad[14] cbe[3]# vss ad[26] ad[25] vss gpio[28] ri# vss satarbias j h vss plock# ad[24] vss ad[28] req[0]# vccpsus smbdata sus_stat#/ lpcpd# vss vccsata satarbias# h g perr# stop# vss ad[27] ad[31] vss smbclk slp_s5# vss gpi[8] vccapll vss g f devsel# nc ad[29] ad[30] vccpsus pirq[g]#/ gpi[4] smlink1 vss pwrbtn# gpio[25] vss susclk f e vss req[3]# req[1]# vss pirq[h]#/ gpi[5] pirq[f]#/ gpi[3] vss slp_s4# reserved vss smbalert#/ gpi[11] wake# e d gnt[6]#/ gpo[16] req[5]#/ gpi[1] vccpsus gnt[0]# pirq[e]#/ gpi[2] vss smlink0 slp_s3# vss esidcac gpio[24] vss d
304 intel ? 631xesb/632xesb i/o controller hub datasheet component ballout c vss vss pcirst# spkr vss pirq[a]# pirq[d]# vss intruder# vccprtc vss intvrmen c b vss clk14 vss thrmtrip# gnt[2]# vss pirq[c]# gpio[27] vss rtcx1 pwrok b avss req[6]#/ gpi[0] gnt[5]#/ gpo[17] vss pirq[b]# rtcrst# vss rtcx2 rsmrst# vss a 36 35 34 33 32 31 30 29 28 27 26 25 note: all the intel ? 631xesb/632xesb i/o controller hub ballouts in following tables are the superset of intel ? 631xesb/632xesb i/o controller hub sku definition ( section 1.3 ). table 7-1. intel ? 631xesb/632xesb i/o controller hub ballout (left third) (sheet 2 of 2) table 7-2. intel ? 631xesb/632xesb i/o controller hub ballout (middle third) (sheet 1 of 2) 24 23 22 21 20 19 18 17 16 15 14 13 at ebus_be_1# vss hpx_sol/ hxbutton2# hpx_sic/ hxpwrled2# vss hpx_soc/ hxpcixcap2_ 2 hpx_slot[3]/ hxpwrled1# vcc33 hpx_sid/ hxpcixcap1_ 2 pxirq[8]#/ hxbutton_1# vcc33 pxirq[10]#/ hxpcixcap1_ 1 at ar vss hpx_slot[2] hpx_slot[1]/ hxprsnt1_1# vss hpx_slot[0]/ hxmrl_2# hpx_sil#/ hxclken_1# vss pxirq[4]# pxirq[7]# vss pxirq[11]#/ hxm66en_1 pxirq[12]#/ hxm66en_2 ar ap ebus_ce_1# ebus_ce_2# vss hpx_rst2# hpx_solr/ hxatnled2# vss hpx_prst#/ hxrst1# hpx_sod/ hxclken_2# vcc33 pxirq[6]# pxirq[9]#/ hxpcixcap2_ 1 vcc33 ap an ebus_ad[4] vss ebus_ad[1] smbus[2] vss vss reserved vss pxad[14] pxirq[5]# vss pxad[9] an am vss ebus_ad[2] ebus_ad[0] vss npecfg specfg vss nc pxcbe[1]# vcc33 pxad[11] pxcbe[0]# am al ebus_ad[3] ebus_ad[15] vss smbus[5] pastrap0 vss pxpcixcap nc vss pxad[13] pxad[10] vss al ak ebus_ad[18] vss ebus_ad[13] strap_3 vss smbus[1] hpdta vcc33 pxad[15] pxad[12] vss pxad[27] ak aj vss ebus_ad[16] ebus_ad[14] vss sclk rstin# vss hpclk pxpar vss pxad[31] pxad[28] aj ah sdp3_4/ led1_0 ebus_ad[17] vss smbus[3] sdta vss reserved reserved vss pxgnt[2]# pxad[30] vcc33 ah ag vccaux3_3 vss extintr# reserved vss reserved reserved vcc33 pxgnt[4]#/ hxbusen_2# pxgnt[3]#/ hxpwren_2 vss pxad[29] ag af vss nc nc strap_6 strap_5 reserved nc vcc33 pxreq[5]#/ hxprsnt1_2# vss nc vss af ae vccaux3_3 nc vss vss vss vss vcc33 vcc33 vss vcc33 vss nc ae ad vss vccaux1_5 vss vccaux1_5 vss vcc vss vcc vss vcc vss vcc ad ac vss vss vccaux1_5 vss vcc vss vcc vss vcc vss vcc vss ac ab vss2 vccaux1_5 vss vccaux1_5 vss vcc vss vcc vss vcc vss vcc ab aa vss vss vccaux1_5 vss vcc vss vcc vss vcc vss vcc vss aa y vccse vccaux1_5 vss vccaux1_5 vss vcc vss vcc vss vcc vss vcc y w vccse vss vcc vss vcc vss vcc vss vcc vss vcc vss w v vss vcc vss vcc vss vcc vss vcc vss vcc vss vcc v uvssvssvccvssvccvssvccvssvccvssvccvssu t vccppci vcc vss vcc vss vcc vss vcc vss vcc vss vcc t rvssvssvccvssvccvssvccvssvccvssvccvssr p nc vcc vss vcc vss vcc vss vcc vss vcc vss vcc p n vccppci vss vcc vss vcc vss vcc vss vcc vss vcc vss n m nc nc vss nc vss vss vccatx vss vccarx nc vss vccpide m l vss vss nc vss sata5txn sata5txp vccatx sata2txn sata2txp vss vccpide vccpide l k sys_reset# sataled# vrmpwrgd sata4rxp sata4rxn vss sata2rxp sata2rxn vccarx sata0rxp sata0rxn vccpide k j serirq vss sata4txn sata4txp vss vssasatabg vccasatabg vss sata1txn sata1txp vss usbrbias# j h vss sata5rxp sata5rxn vss sata3txn sata3txp vccatx sata1rxp sata1rxn vccpide sata0txn sata0txp h g sataclkp sataclkn vss sata3rxp sata3rxn vccatx sata4gp/ gpi[12] gpi[6] vss dd[14] dd[13] vss g fthrm# vss cpupwrgd/ gpo[49] ldrq[1]#/ gpi[41] vccatx strap_7 sata1gp/ gpi[29] vccatx sdataout1/ gpio[32] vccarx vss dd[11] f e vss init3_3v# a20gate vss ldrq[0]# sata3gp/ gpi[31] vss gpi[7] gpio[33] vss dd[12] dd[10] e d vccpcpu init# vss cpuslp# fwh[4]/ lframe# vss sata0gp/ gpi[26] gpio[34] vccarx nc vcc5ref2 vss d
intel ? 631xesb/632xesb i/o controller hub datasheet 305 component ballout c rcin# vccpcpu stpclk# intr vss fwh[3]/ lad[3] sata2gp/ gpi[30] vss sload/ gpo[21] sdataout0/ gpo[23] vccpide dd[8] c b vccpcpu smi# nmi vss fwh[1]/ lad[1] fwh[2]/ lad[2] vccarx gpo[18] sclk/gpo[20] vss diow# / dstop dior# / dwstb / rdmardy# b a ferr# ignne# vss a20m# fwh[0]/ lad[0] vss sata5gp/ gpi[13] gpo[19] vccarx dd[15] ddreq vccpide a 24 23 22 21 20 19 18 17 16 15 14 13 table 7-2. intel ? 631xesb/632xesb i/o controller hub ballout (middle third) (sheet 2 of 2) table 7-3. intel ? 631xesb/632xesb i/o controller hub ballout (right third) (sheet 1 of 2) 121110987654321 at pxirq[14]#/ hxpwrflt_1 # vcc33 pxirq[0]# pxpclko[0] vss pxpclko[1] pxpclko[6] vss pxpclko[2] vss at ar vss pxirq[1]# pxirq[2]# vss pxpclko[4] pxpclko[5] vss pxpclko[3] pxpclki vss vss ar ap pxirq[13]#/ hxpwrflt_2 # pxirq[15]#/ hxmrl1# vcc33 pxirq[3]# pxad[0] vss pxpme# pxpcirst# vss pxgnt[5]#/ hxbusen_1# pxreq[1]# vss ap an pxad[8] vss pxad[4] pxad[2] vss hpx_pwren_ 1 pxreq[3]#/ hxprsnt2_1# vss pxgnt[0]# pxreq[0]# vss pxreq[4]#/ hxprsnt2_2# an am vcc33 pxad[6] pxad[3] vcc33 pxack64# pxcbe[7]# vss pxcbe[6]# pxgnt[1]# pxframe# pxirdy# pxtrdy# am al pxad[7] pxad[5] vss pxad[1] pxreq64# vss pxcbe[4]# pxreq[2]# vss pxad[49] pxad[48] vss al ak pxad[25] vcc33 px133en reserved vss pxcbe[5]# pxpar64 vss pxad[46] pxad[47] vss pxdevsel# ak aj vss pxad[24] pxad[22] vss pxad[18] pxad[63] vss pxad[62] pxad[45] vss pxad[44] pxstop# aj ah pxad[26] pxcbe[3]# vss pxad[20] pxad[17] vss pxad[61] pxad[60] vss pxad[43] pxad[41] pxplock# ah ag vcc15 vss pxad[21] pxad[16] vss pxad[59] pxad[57] vss pxad[42] pxad[40] vss pxperr# ag af vss pxad[23] pxad[19] vss pxcbe[2]# pxad[58] vss pxad[56] pxad[38] vss pxad[39] pxad[36] af ae vcc15 vccap1 vss hxatnled_1# pxad[53] vss pxad[55] pxad[54] vss pxad[37] pxad[35] vss ae ad vcc15 vcc15 vccap3 pxad[52] vss pxad[50] pxad[51] vss pxad[34] pxad[33] vss pxad[32] ad ac vcc15 vrefpcipad rcomp vss pe2rn2 pe2rp2 vcc15 pe2tn1 pe2tp1 vss pxserr# pxm66en ac ab vcc15 vcc15 vcc15 pe2tn3 pe2tp3 vcc15 pe2rn1 pe2rp1 vss pe2tn0 pe2tp0 vss ab aa vccpe vss pe2rn3 pe2rp3 vss pe2tn2 pe2tp2 vss pe2rn0 pe2rp0 vss vssbgpe aa y vccpe pe1rn3 pe1rp3 vccpe pe1rp0 pe1rn0 vss pe1tp2 pe1tn2 vccpe pe1tn3 pe1tp3 y w vccpe percompo vss pe1tp0 pe1tn0 vccpe pe1rp1 pe1rn1 vss pe1rn2 pe1rp2 vss w v vss vccpe peclkn peclkp vss vccape vssape vccpe pe1tp1 pe1tn1 vss vccbgpe v u vccpe pe4rp0 pe4rn0 vss pe4tp1 pe4tn1 vss pe4tp2 pe4tn2 vccpe pe4rp3 pe4rn3 u t vccpe peicompi vss pe4rp1 pe4rn1 vccpe pe4rp2 pe4rn2 vss pe4tp3 pe4tn3 vss t r vss vss pe4tp0 pe4tn0 vss pe4tn6 pe4tp6 vccpe pe4rn4 pe4rp4 vccpe nc r p vccpe nc nc vccpe pe4rn7 pe4rp7 vss pe4tn5 pe4tp5 vss pe4tn4 pe4tp4 p n vccpe vccp25ide vss pe4tn7 pe4tp7 vccpe pe4rn6 pe4rp6 vccpe pe4rn5 pe4rp5 vss n m nc vccpe nc vccaesi vss pe0tn0 pe0tp0 vss pe0rn3 pe0rp3 vccpe esiclk100p m l vss vccbgesi vssbgesi vss pe0rn0 pe0rp0 vss pe0tn3 pe0tp3 vss esiicompi esiclk100n l k vccaubg vssaubg vss vccusbcore vccusbcore vss pe0rn2 pe0rp2 vss pe0tp2 pe0tn2 vss k j usbrbias vss esirxn[3] esirxp[3] vccusbcore esitxn[2] esitxp[2] vss pe0rp1 pe0rn1 vss esircompo j h vss clk48 vccusb vss esirxn[2] esirxp[2] vss esitxn[1] esitxp[1] vss pe0tp1 pe0tn1 h g dd[5] dd[3] vss esitxn[3] esitxp[3] vccpusb esirxn[1] esirxp[1] vccusbcore esitxn[0] esitxp[0] vss g f dd[4] vss dd[1] vccaupll vss oc[7] #/ gpi[15] oc[6]#/ gpi[14] vss esirxn[0] esirxp[0] vss oc[5]#/ gpi[10] f e vccpide dd[2] dd[0] vss usbp2p usbp2n vccpusb vcc5refsus oc[4]#/ gpi[9] vss oc[2]# oc[3]# e d dd[9] dd[6] vss usbp1p usbp1n vss oc[1]# oc[0]# vss usbp7p usbp7n vccusbcore d c dd[7] vss usbp0p usbp0n vss usbp3p usbp3n vccpusb usbp6p usbp6n vss vss c b vss ideirq da[1] vss dcs1# dcs3# vss usbp5p usbp5n vccpusb vss b
306 intel ? 631xesb/632xesb i/o controller hub datasheet component ballout a iordy / drstb / wdmardy# ddack# vss da[0] da[2] vss usbp4p usbp4n vccpusb vss a 121110987654321 table 7-3. intel ? 631xesb/632xesb i/o controller hub ballout (right third) (sheet 2 of 2)
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 307 8 signal lists 8.1 intel ? 631xesb/632xesb i/o controller hub signal list (sorted by signal name) note: all the pinlists in following tables are the superset of intel ? 631xesb/632xesb i/o controller hub sku definition ( section 1.3 ). pin name pin number a20gate e22 a20m# a21 acz_bit_clk t32 acz_rst# u34 acz_sdin[0] r33 acz_sdin[1] u31 acz_sdin[2] u32 acz_sdout r31 acz_sync t33 ad[0] t36 ad[1] t35 ad[10] l34 ad[11] m36 ad[12] k33 ad[13] k32 ad[14] j34 ad[15] k36 ad[16] t30 ad[17] r30 ad[18] u35 ad[19] m31 ad[2] r36 ad[20] m30 ad[21] r34 ad[22] l31 ad[23] l32 ad[24] h34 ad[25] j30 ad[26] j31 ad[27] g33 ad[28] h32 ad[29] f34 ad[3] n33 ad[30] f33 ad[31] g32 ad[4] n32 ad[5] m33 ad[6] m34 ad[7] l29 ad[8] n36 ad[9] n35 cbe[0]# k29 cbe[1]# l35 cbe[2]# n30 cbe[3]# j33 clk14 b34 clk48 h11 cpupwrgd/gpo[49] f22 cpuslp# d21 da[0] a9 da[1] b10 da[2] a8 dcs1# b8 dcs3# b7 dd[0] e10 dd[1] f10 dd[10] e13 dd[11] f13 dd[12] e14 dd[13] g14 dd[14] g15 dd[15] a15 dd[2] e11 dd[3] g11 dd[4] f12 dd[5] g12 pin name pin number
signal lists 308 intel ? 631xesb/632xesb i/o controller hub datasheet dd[6] d11 dd[7] c12 dd[8] c13 dd[9] d12 ddack# a11 ddreq a14 devsel# f36 dior# / dwstb / rdmardy# b13 diow# / dstop b14 ebus_ad[0] am22 ebus_ad[1] an22 ebus_ad[10] an27 ebus_ad[11] am28 ebus_ad[12] an28 ebus_ad[13] ak22 ebus_ad[14] aj22 ebus_ad[15] al23 ebus_ad[16] aj23 ebus_ad[17] ah23 ebus_ad[18] ak24 ebus_ad[19] ak25 ebus_ad[2] am23 ebus_ad[20] aj25 ebus_ad[21] aj26 ebus_ad[22] ak27 ebus_ad[23] aj28 ebus_ad[24] ak28 ebus_ad[3] al24 ebus_ad[4] an24 ebus_ad[5] an25 ebus_ad[6] am25 ebus_ad[7] am26 ebus_ad[8] al26 ebus_ad[9] al27 ebus_adv#/ebus_ras# at27 ebus_alat/ebus_cke ar26 ebus_be_0# at25 ebus_be_1# at24 ebus_ce_1# ap24 ebus_ce_2# ap23 reserved ar28 ebus_clk_2 ap26 pin name pin number ebus_frst# at28 ebus_oe#/ebus_cas# ap27 ebus_we# ar25 ee_cs# ad36 ee_di af35 ee_do ae35 ee_sk ae36 reserved ae27 esb2_test0 u28 esb2_test1 u26 esb2_test2 ad31 esiclk100n l1 esiclk100p m1 esidcac d27 esiicompi l2 esircompo j1 esirxn[0] f4 esirxn[1] g6 esirxn[2] h8 esirxn[3] j10 esirxp[0] f3 esirxp[1] g5 esirxp[2] h7 esirxp[3] j9 esitxn[0] g3 esitxn[1] h5 esitxn[2] j7 esitxn[3] g9 esitxp[0] g2 esitxp[1] h4 esitxp[2] j6 esitxp[3] g8 extintr# ag22 ferr# a24 flbsd0 al35 flbsd1 ak36 flbsintex0 al36 flbsintex1 am35 flsh_ce# aj35 flsh_sck ah35 flsh_si ah36 flsh_so ag36 frame# t29 pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 309 fwh[0]/lad[0] a20 fwh[1]/lad[1] b20 fwh[2]/lad[2] b19 fwh[3]/lad[3] c19 fwh[4]/lframe# d20 gnt[0]# d33 gnt[1]# p29 gnt[2]# b31 gnt[3]# p35 gnt[4]#/gpio[48] p34 gnt[5]#/gpo[17] a32 gnt[6]#/gpo[16] d36 gpi[6] g17 gpi[7] e17 gpi[8] g27 gpio[24] d26 gpio[25] f27 gpio[27] b28 gpio[28] j28 gpio[33] e16 gpio[34] d17 gpo[18] b17 gpo[19] a17 hpclk aj17 hpdta ak18 hpx_prst#/ hxrst1# ap18 hpx_pwren_1 an7 hpx_rst2# ap21 hpx_sic/ hxpwrled2# at21 hpx_sid/ hxpcixcap1_2 at16 hpx_sil#/ hxclken_1# ar19 hpx_slot[0]/ hxmrl_2# ar20 hpx_slot[1]/ hxprsnt1_1# ar22 hpx_slot[2] ar23 hpx_slot[3]/ hxpwrled1# at18 hpx_soc/ hxpcixcap2_2 at19 hpx_sod/ hxclken_2# ap17 hpx_sol/ hxbutton2# at22 hpx_solr/ hxatnled2# ap20 hxatnled_1# ae9 ideirq b11 ignne# a23 pin name pin number init# d23 init3_3v# e23 intr c21 intruder# c28 intvrmen c25 iordy / drstb / wdmardy# a12 irdy# n29 lan_pwr_good an36 lan0_dis# al29 lan1_dis# am29 ldrq[0]# e20 ldrq[1]#/gpi[41] f21 link_0 ab35 link_1 ac35 nc ad25 nc ad34 nc ae13 nc ae23 nc af14 nc af18 nc af22 nc af23 nc al17 nc am17 nc d15 nc f35 nc l22 nc m10 nc m12 nc m15 nc m21 nc m23 nc m24 nc p10 nc p11 nc p24 nc r1 nc r28 nc u25 nc v25 nmi b22 npecfg am20 pin name pin number
signal lists 310 intel ? 631xesb/632xesb i/o controller hub datasheet oc[0]# d5 oc[1]# d6 oc[2]# e2 oc[3]# e1 oc[4]#/gpi[9] e4 oc[5]#/gpi[10] f1 oc[6]#/gpi[14] f6 oc[7]#/gpi[15] f7 par k35 pastrap0 al20 pciclk m28 pcirst# c34 pe_wake# al33 pe0rn0 l8 pe0rn1 j3 pe0rn2 k6 pe0rn3 m4 pe0rp0 l7 pe0rp1 j4 pe0rp2 k5 pe0rp3 m3 pe0tn0 m7 pe0tn1 h1 pe0tn2 k2 pe0tn3 l5 pe0tp0 m6 pe0tp1 h2 pe0tp2 k3 pe0tp3 l4 pe1rn0 y7 pe1rn1 w5 pe1rn2 w3 pe1rn3 y11 pe1rp0 y8 pe1rp1 w6 pe1rp2 w2 pe1rp3 y10 pe1tn0 w8 pe1tn1 v3 pe1tn2 y4 pe1tn3 y2 pe1tp0 w9 pe1tp1 v4 pin name pin number pe1tp2 y5 pe1tp3 y1 pe2rn0 aa4 pe2rn1 ab6 pe2rn2 ac8 pe2rn3 aa10 pe2rp0 aa3 pe2rp1 ab5 pe2rp2 ac7 pe2rp3 aa9 pe2tn0 ab3 pe2tn1 ac5 pe2tn2 aa7 pe2tn3 ab9 pe2tp0 ab2 pe2tp1 ac4 pe2tp2 aa6 pe2tp3 ab8 pe4rn0 u10 pe4rn1 t8 pe4rn2 t5 pe4rn3 u1 pe4rn4 r4 pe4rn5 n3 pe4rn6 n6 pe4rn7 p8 pe4rp0 u11 pe4rp1 t9 pe4rp2 t6 pe4rp3 u2 pe4rp4 r3 pe4rp5 n2 pe4rp6 n5 pe4rp7 p7 pe4tn0 r9 pe4tn1 u7 pe4tn2 u4 pe4tn3 t2 pe4tn4 p2 pe4tn5 p5 pe4tn6 r7 pe4tn7 n9 pe4tp0 r10 pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 311 pe4tp1 u8 pe4tp2 u5 pe4tp3 t3 pe4tp4 p1 pe4tp5 p4 pe4tp6 r6 pe4tp7 n8 peclkn v10 peclkp v9 peicompi t11 percompo w11 perr# g36 perst# am34 reserved aa36 reserved ab36 pirq[a]# c31 pirq[b]# a30 pirq[c]# b29 pirq[d]# c30 pirq[e]#/gpi[2] d32 pirq[f]#/gpi[3] e31 pirq[g]#/gpi[4] f31 pirq[h]#/gpi[5] e32 plock# h35 pltrst# p32 pme# p31 pwrbtn# f28 pwrok b25 px133en ak10 pxack64# am8 pxad[0] ap8 pxad[1] al9 pxad[10] al14 pxad[11] am14 pxad[12] ak15 pxad[13] al15 pxad[14] an16 pxad[15] ak16 pxad[16] ag9 pxad[17] ah8 pxad[18] aj8 pxad[19] af10 pxad[2] an9 pin name pin number pxad[20] ah9 pxad[21] ag10 pxad[22] aj10 pxad[23] af11 pxad[24] aj11 pxad[25] ak12 pxad[26] ah12 pxad[27] ak13 pxad[28] aj13 pxad[29] ag13 pxad[3] am10 pxad[30] ah14 pxad[31] aj14 pxad[32] ad1 pxad[33] ad3 pxad[34] ad4 pxad[35] ae2 pxad[36] af1 pxad[37] ae3 pxad[38] af4 pxad[39] af2 pxad[4] an10 pxad[40] ag3 pxad[41] ah2 pxad[42] ag4 pxad[43] ah3 pxad[44] aj2 pxad[45] aj4 pxad[46] ak4 pxad[47] ak3 pxad[48] al2 pxad[49] al3 pxad[5] al11 pxad[50] ad7 pxad[51] ad6 pxad[52] ad9 pxad[53] ae8 pxad[54] ae5 pxad[55] ae6 pxad[56] af5 pxad[57] ag6 pxad[58] af7 pxad[59] ag7 pin name pin number
signal lists 312 intel ? 631xesb/632xesb i/o controller hub datasheet pxad[6] am11 pxad[60] ah5 pxad[61] ah6 pxad[62] aj5 pxad[63] aj7 pxad[7] al12 pxad[8] an12 pxad[9] an13 pxcbe[0]# am13 pxcbe[1]# am16 pxcbe[2]# af8 pxcbe[3]# ah11 pxcbe[4]# al6 pxcbe[5]# ak7 pxcbe[6]# am5 pxcbe[7]# am7 pxdevsel# ak1 pxframe# am3 pxgnt[0]# an4 pxgnt[1]# am4 pxgnt[2]# ah15 pxgnt[3]#/ hxpwren_2 ag15 pxgnt[4]#/ hxbusen_2# ag16 pxgnt[5]#/ hxbusen_1# ap3 pxirdy# am2 pxirq[0]# at10 pxirq[1]# ar11 pxirq[10]#/ hxpcixcap1_1 at13 pxirq[11]#/ hxm66en_1 ar14 pxirq[12]#/ hxm66en_2 ar13 pxirq[13]#/ hxpwrflt_2# ap12 pxirq[14]#/ hxpwrflt_1# at12 pxirq[15]#/ hxmrl1# ap11 pxirq[2]# ar10 pxirq[3]# ap9 pxirq[4]# ar17 pxirq[5]# an15 pxirq[6]# ap15 pxirq[7]# ar16 pxirq[8]#/ hxbutton_1# at15 pxirq[9]#/ hxpcixcap2_1 ap14 pxm66en ac1 pin name pin number pxpar aj16 pxpar64 ak6 pxpcirst# ap5 pxpcixcap al18 pxpclki ar4 pxpclko[0] at9 pxpclko[1] at7 pxpclko[2] at4 pxpclko[3] ar5 pxpclko[4] ar8 pxpclko[5] ar7 pxpclko[6] at6 pxperr# ag1 pxplock# ah1 pxpme# ap6 pxpwrok ag30 pxreq[0]# an3 pxreq[1]# ap2 pxreq[2]# al5 pxreq[3]#/ hxprsnt2_1# an6 pxreq[4]#/ hxprsnt2_2# an1 pxreq[5]#/ hxprsnt1_2# af16 pxreq64# al8 pxserr# ac2 pxstop# aj1 pxtrdy# am1 rcin# c24 rcomp ac10 req[0]# h31 req[1]# e34 req[2]# l28 req[3]# e35 req[4]#/gpi[40] k30 req[5]#/gpi[1] d35 req[6]#/gpi[0] a33 reserved ac29 reserved ad27 reserved ad30 reserved ad33 reserved ae29 strap_8 af19 reserved ag18 reserved ag19 pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 313 reserved ag21 reserved ah17 reserved ah18 reserved ak9 reserved an18 vss an19 ri# j27 rs232_cts at31 rs232_dcd ap30 rs232_dsr ar32 rs232_dtr ar31 rs232_ri ar29 rs232_rts ap29 rs232_sin an30 rs232_sout at30 rsmrst# a26 rstin# aj19 rtcrst# a29 rtcx1 b26 rtcx2 a27 sata0gp/gpi[26] d18 sata0rxn k14 sata0rxp k15 sata0txn h14 sata0txp h13 sata1gp/gpi[29] f18 sata1rxn h16 sata1rxp h17 sata1txn j16 sata1txp j15 sata2gp/gpi[30] c18 sata2rxn k17 sata2rxp k18 sata2txn l17 sata2txp l16 sata3gp/gpi[31] e19 sata3rxn g20 sata3rxp g21 sata3txn h20 sata3txp h19 sata4gp/gpi[12] g18 sata4rxn k20 sata4rxp k21 pin name pin number sata4txn j22 sata4txp j21 sata5gp/gpi[13] a18 sata5rxn h22 sata5rxp h23 sata5txn l20 sata5txp l19 sataclkn g23 sataclkp g24 sataled# k23 satarbias j25 satarbias# h25 sclk aj20 sclk/gpo[20] b16 sdataout0/gpo[23] c15 sdataout1/gpio[32] f16 sdp0_0 ak31 sdp0_1 ak30 sdp0_2 al30 sdp1_0 al32 sdp1_1 am31 sdp1_2 ap32 sdp2_0 am32 sdp2_1 an31 sdp2_2 an33 sdp2_3 an34 sdp2_4 ap33 sdp2_5 ap35 sdp2_6 ar34 sdp2_7 at33 sdp3_0/led0_0 ag25 sdp3_4/led1_0 ah24 sdram_a10/sdp3_6/ led1_2 ah30 sdram_a11/sdp3_7/ led1_3 ah26 sdram_a9/sdp3_5/led1_1 ah27 sdram_ad12/spd3_1/ led0_1 ah29 sdram_ba0/sdp3_2/ led0_2 aj31 sdram_ba1/sdp3_3/ led0_3 aj29 sdta ah20 seicompi w33 pin name pin number
signal lists 314 intel ? 631xesb/632xesb i/o controller hub datasheet ser_clk_in v36 sercompo w32 serirq j24 sern0 v28 sern1 w35 serp0 v27 serp1 w36 serr# j36 setn0 w30 setn1 y34 setp0 w29 setp1 y35 sload/gpo[21] c16 slp_s3# d29 slp_s4# e29 slp_s5# g29 smbalert#/gpi[11] e26 smbalrt_2 ag31 smbalrt_3 aj32 smbalrt_4 ak33 smbclk g30 smbclk0 ae33 smbclk1 ag33 smbclk2 af31 smbclk3 ah32 smbclk4 aj34 smbd0 ae32 smbd1 ag34 smbd2 af32 smbd3 ah33 smbd4 ak34 smbdata h29 smbus[1] ak19 smbus[2] an21 smbus[3] ah21 smbus[5] al21 smi# b23 smlink0 d30 smlink1 f30 specfg am19 spkr c33 stop# g35 stpclk# c22 pin name pin number strap_0 ae26 strap_1 ae30 strap_2 ad28 strap_3 ak21 strap_4 k27 strap_5 af20 strap_6 af21 strap_7 f19 sus_stat#/lpcpd# h28 susclk f25 sys_reset# k24 tck ag28 tdi af28 tdo af29 thrm# f24 thrmtrip# b32 tms af26 tp[0] e28 trdy# p28 trst# ag27 usbp0n c9 usbp0p c10 usbp1n d8 usbp1p d9 usbp2n e7 usbp2p e8 usbp3n c6 usbp3p c7 usbp4n a5 usbp4p a6 usbp5n b4 usbp5p b5 usbp6n c3 usbp6p c4 usbp7n d2 usbp7p d3 usbrbias j12 usbrbias# j13 vcc aa14 vcc aa16 vcc aa18 vcc aa20 vcc ab13 pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 315 vcc ab15 vcc ab17 vcc ab19 vcc ac14 vcc ac16 vcc ac18 vcc ac20 vcc ad13 vcc ad15 vcc ad17 vcc ad19 vcc n14 vcc n16 vcc n18 vcc n20 vcc n22 vcc p13 vcc p15 vcc p17 vcc p19 vcc p21 vcc p23 vcc r14 vcc r16 vcc r18 vcc r20 vcc r22 vcc t13 vcc t15 vcc t17 vcc t19 vcc t21 vcc t23 vcc u14 vcc u16 vcc u18 vcc u20 vcc u22 vcc v13 vcc v15 vcc v17 vcc v19 vcc v21 pin name pin number vcc v23 vcc w14 vcc w16 vcc w18 vcc w20 vcc w22 vcc y13 vcc y15 vcc y17 vcc y19 vcc15 ab10 vcc15 ab11 vcc15 ab12 vcc15 ab7 vcc15 ac12 vcc15 ac6 vcc15 ad11 vcc15 ad12 vcc15 ae12 vcc15 ag12 vcc33 ae15 vcc33 ae17 vcc33 ae18 vcc33 af17 vcc33 ag17 vcc33 ah13 vcc33 ak11 vcc33 ak17 vcc33 am12 vcc33 am15 vcc33 am9 vcc33 ap10 vcc33 ap13 vcc33 ap16 vcc33 at11 vcc33 at14 vcc33 at17 vcc5ref1 u29 vcc5ref2 d14 vcc5refsus e5 vcca3_3 v30 vccaesi m9 vccap1 ae11 pin name pin number
signal lists 316 intel ? 631xesb/632xesb i/o controller hub datasheet vccap3 ad10 vccape v7 vccapll g26 vccapll1_5 v33 vccarx a16 vccarx b18 vccarx d16 vccarx f15 vccarx k16 vccarx m16 vccasatabg j18 vccatx f17 vccatx f20 vccatx g19 vccatx h18 vccatx l18 vccatx m18 vccaubg k12 vccaupll f9 vccaux1_5 aa22 vccaux1_5 ab21 vccaux1_5 ab23 vccaux1_5 ac22 vccaux1_5 ad21 vccaux1_5 ad23 vccaux1_5 y21 vccaux1_5 y23 vccaux3_3 ae24 vccaux3_3 af25 vccaux3_3 af27 vccaux3_3 ag24 vccaux3_3 ag29 vccaux3_3 ah25 vccaux3_3 ah31 vccaux3_3 aj27 vccaux3_3 ak29 vccaux3_3 ak32 vccaux3_3 am30 vccaux3_3 am33 vccaux3_3 an35 vccaux3_3 ap31 vccaux3_3 ar33 vccaux3_3 at29 pin name pin number vccbgesi l11 vccbgpe v1 vccp25ide n11 vccp25pci t27 vccpcpu b24 vccpcpu c23 vccpcpu d24 vccpe aa12 vccpe m11 vccpe m2 vccpe n12 vccpe n4 vccpe n7 vccpe p12 vccpe p9 vccpe r2 vccpe r5 vccpe t12 vccpe t7 vccpe u12 vccpe u3 vccpe v11 vccpe v5 vccpe w12 vccpe w7 vccpe y12 vccpe y3 vccpe y9 vccpide a13 vccpide c14 vccpide e12 vccpide h15 vccpide k13 vccpide l13 vccpide l14 vccpide m13 vccppci k31 vccppci l33 vccppci m29 vccppci m35 vccppci n24 vccppci n26 vccppci n31 pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 317 vccppci p25 vccppci p26 vccppci p27 vccppci p33 vccppci p36 vccppci r25 vccppci r27 vccppci r29 vccppci t24 vccppci t26 vccprtc c27 vccpsus d34 vccpsus f32 vccpsus h30 vccpsus k25 vccpsus k26 vccpsus k28 vccpsus l25 vccpsus l26 vccpsus m25 vccpusb a4 vccpusb b3 vccpusb c5 vccpusb e6 vccpusb g7 vccsata h26 vccse w24 vccse w26 vccse y24 vccse y25 vccse y27 vccse y30 vccse y33 vccsus1 m27 vccsus2 n27 vccusb h10 vccusbcore d1 vccusbcore g4 vccusbcore j8 vccusbcore k8 vccusbcore k9 vrefpcipad ac11 vrmpwrgd k22 pin name pin number vss a10 vss a19 vss a22 vss a25 vss a28 vss a3 vss a31 vss a34 vss a7 vss aa11 vss aa13 vss aa15 vss aa17 vss aa19 vss aa2 vss aa21 vss aa23 vss aa24 vss aa26 vss aa27 vss aa28 vss aa29 vss aa30 vss aa31 vss aa32 vss aa33 vss aa34 vss aa5 vss aa8 vss ab1 vss ab14 vss ab16 vss ab18 vss ab20 vss ab22 vss ab26 vss ab27 vss ab28 vss ab29 vss ab30 vss ab32 vss ab33 vss ab34 pin name pin number
signal lists 318 intel ? 631xesb/632xesb i/o controller hub datasheet vss ab4 vss ac13 vss ac15 vss ac17 vss ac19 vss ac21 vss ac23 vss ac24 vss ac25 vss ac26 vss ac27 vss ac28 vss ac3 vss ac30 vss ac31 vss ac32 vss ac34 vss ac36 vss ac9 vss ad14 vss ad16 vss ad18 vss ad2 vss ad20 vss ad22 vss ad24 vss ad26 vss ad32 vss ad5 vss ad8 vss ae1 vss ae10 vss ae14 vss ae16 vss ae19 vss ae20 vss ae21 vss ae22 vss ae25 vss ae28 vss ae31 vss ae34 vss ae4 pin name pin number vss ae7 vss af12 vss af13 vss af15 vss af24 vss af3 vss af30 vss af33 vss af34 vss af36 vss af6 vss af9 vss ag11 vss ag14 vss ag2 vss ag20 vss ag23 vss ag26 vss ag32 vss ag35 vss ag5 vss ag8 vss ah10 vss ah16 vss ah19 vss ah22 vss ah28 vss ah34 vss ah4 vss ah7 vss aj12 vss aj15 vss aj18 vss aj21 vss aj24 vss aj3 vss aj30 vss aj33 vss aj36 vss aj6 vss aj9 vss ak14 vss ak2 pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 319 vss ak20 vss ak23 vss ak26 vss ak35 vss ak5 vss ak8 vss al1 vss al10 vss al13 vss al16 vss al19 vss al22 vss al25 vss al28 vss al31 vss al34 vss al4 vss al7 vss am18 vss am21 vss am24 vss am27 vss am36 vss am6 vss an11 vss an14 vss an17 vss an2 vss an20 vss an23 vss an26 vss an29 vss an32 vss an5 vss an8 vss ap1 vss ap19 vss ap22 vss ap25 vss ap28 vss ap34 vss ap36 vss ap4 pin name pin number vss ap7 vss ar12 vss ar15 vss ar18 vss ar2 vss ar21 vss ar24 vss ar27 vss ar3 vss ar30 vss ar35 vss ar6 vss ar9 vss at20 vss at23 vss at26 vss at3 vss at32 vss at34 vss at5 vss at8 vss b12 vss b15 vss b2 vss b21 vss b27 vss b30 vss b33 vss b35 vss b6 vss b9 vss c1 vss c11 vss c17 vss c2 vss c20 vss c26 vss c29 vss c32 vss c35 vss c36 vss c8 vss d10 pin name pin number
signal lists 320 intel ? 631xesb/632xesb i/o controller hub datasheet vss d13 vss d19 vss d22 vss d25 vss d28 vss d31 vss d4 vss d7 vss e15 vss e18 vss e21 vss e24 vss e27 vss e3 vss e30 vss e33 vss e36 vss e9 vss f11 vss f14 vss f2 vss f23 vss f26 vss f29 vss f5 vss f8 vss g1 vss g10 vss g13 vss g16 vss g22 vss g25 vss g28 vss g31 vss g34 vss h12 vss h21 vss h24 vss h27 vss h3 vss h33 vss h36 vss h6 pin name pin number vss h9 vss j11 vss j14 vss j17 vss j2 vss j20 vss j23 vss j26 vss j29 vss j32 vss j35 vss j5 vss k1 vss k10 vss k19 vss k34 vss k4 vss k7 vss l12 vss l15 vss l21 vss l23 vss l24 vss l27 vss l3 vss l30 vss l36 vss l6 vss l9 vss m14 vss m17 vss m19 vss m20 vss m22 vss m26 vss m32 vss m5 vss m8 vss n1 vss n10 vss n13 vss n15 vss n17 pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 321 vss n19 vss n21 vss n23 vss n25 vss n28 vss n34 vss p14 vss p16 vss p18 vss p20 vss p22 vss p3 vss p30 vss p6 vss r11 vss r12 vss r13 vss r15 vss r17 vss r19 vss r21 vss r23 vss r24 vss r26 vss r32 vss r35 vss r8 vss t1 vss t10 vss t14 vss t16 vss t18 vss t20 vss t22 vss t25 vss t28 vss t31 vss t34 vss t4 vss u13 vss u15 vss u17 vss u19 pin name pin number vss u21 vss u23 vss u24 vss u27 vss u30 vss u33 vss u36 vss u6 vss u9 vss v12 vss v14 vss v16 vss v18 vss v2 vss v20 vss v22 vss v24 vss v26 vss v29 vss v32 vss v35 vss v8 vss w1 vss w10 vss w13 vss w15 vss w17 vss w19 vss w21 vss w23 vss w25 vss w27 vss w28 vss w31 vss w34 vss w4 vss y14 vss y16 vss y18 vss y20 vss y22 vss y26 vss y28 pin name pin number
signal lists 322 intel ? 631xesb/632xesb i/o controller hub datasheet vss y29 vss y31 vss y32 vss y36 vss y6 vss2 aa25 vss2 aa35 vss2 ab24 vss2 ab25 vss2 ab31 vss2 ac33 vss2 ad29 vss2 ad35 vssa3_3 v31 vssape v6 vssapll1_5 v34 vssasatabg j19 vssaubg k11 vssbgesi l10 vssbgpe aa1 wake# e25 pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 323 8.2 intel ? 631xesb/632xesb i/o controller hub signal list (sorted by ball number) pin name pin number a10 vss a11 ddack# a12 iordy / drstb / wdmardy# a13 vccpide a14 ddreq a15 dd[15] a16 vccarx a17 gpo[19] a18 sata5gp/gpi[13] a19 vss a20 fwh[0]/lad[0] a21 a20m# a22 vss a23 ignne# a24 ferr# a25 vss a26 rsmrst# a27 rtcx2 a28 vss a29 rtcrst# a3 vss a30 pirq[b]# a31 vss a32 gnt[5]#/gpo[17] a33 req[6]#/gpi[0] a34 vss a4 vccpusb a5 usbp4n a6 usbp4p a7 vss a8 da[2] a9 da[0] aa1 vssbgpe aa10 pe2rn3 aa11 vss aa12 vccpe aa13 vss aa14 vcc aa15 vss aa16 vcc aa17 vss aa18 vcc aa19 vss aa2 vss aa20 vcc aa21 vss aa22 vccaux1_5 aa23 vss aa24 vss aa25 vss2 aa26 vss aa27 vss aa28 vss aa29 vss aa3 pe2rp0 aa30 vss aa31 vss aa32 vss aa33 vss aa34 vss aa35 vss2 aa36 reserved aa4 pe2rn0 aa5 vss aa6 pe2tp2 aa7 pe2tn2 aa8 vss aa9 pe2rp3 ab1 vss ab10 vcc15 ab11 vcc15 ab12 vcc15 ab13 vcc ab14 vss ab15 vcc ab16 vss ab17 vcc ab18 vss pin name pin number
signal lists 324 intel ? 631xesb/632xesb i/o controller hub datasheet ab19 vcc ab2 pe2tp0 ab20 vss ab21 vccaux1_5 ab22 vss ab23 vccaux1_5 ab24 vss2 ab25 vss2 ab26 vss ab27 vss ab28 vss ab29 vss ab3 pe2tn0 ab30 vss ab31 vss2 ab32 vss ab33 vss ab34 vss ab35 link_0 ab36 reserved ab4 vss ab5 pe2rp1 ab6 pe2rn1 ab7 vcc15 ab8 pe2tp3 ab9 pe2tn3 ac1 pxm66en ac10 rcomp ac11 vrefpcipad ac12 vcc15 ac13 vss ac14 vcc ac15 vss ac16 vcc ac17 vss ac18 vcc ac19 vss ac2 pxserr# ac20 vcc ac21 vss ac22 vccaux1_5 ac23 vss ac24 vss pin name pin number ac25 vss ac26 vss ac27 vss ac28 vss ac29 reserved ac3 vss ac30 vss ac31 vss ac32 vss ac33 vss2 ac34 vss ac35 link_1 ac36 vss ac4 pe2tp1 ac5 pe2tn1 ac6 vcc15 ac7 pe2rp2 ac8 pe2rn2 ac9 vss ad1 pxad[32] ad10 vccap3 ad11 vcc15 ad12 vcc15 ad13 vcc ad14 vss ad15 vcc ad16 vss ad17 vcc ad18 vss ad19 vcc ad2 vss ad20 vss ad21 vccaux1_5 ad22 vss ad23 vccaux1_5 ad24 vss ad25 nc ad26 vss ad27 reserved ad28 strap_2 ad29 vss2 ad3 pxad[33] ad30 reserved pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 325 ad31 esb2_test2 ad32 vss ad33 reserved ad34 nc ad35 vss2 ad36 ee_cs# ad4 pxad[34] ad5 vss ad6 pxad[51] ad7 pxad[50] ad8 vss ad9 pxad[52] ae1 vss ae10 vss ae11 vccap1 ae12 vcc15 ae13 nc ae14 vss ae15 vcc33 ae16 vss ae17 vcc33 ae18 vcc33 ae19 vss ae2 pxad[35] ae20 vss ae21 vss ae22 vss ae23 nc ae24 vccaux3_3 ae25 vss ae26 strap_0 ae27 reserved ae28 vss ae29 reserved ae3 pxad[37] ae30 strap_1 ae31 vss ae32 smbd0 ae33 smbclk0 ae34 vss ae35 ee_do ae36 ee_sk ae4 vss pin name pin number ae5 pxad[54] ae6 pxad[55] ae7 vss ae8 pxad[53] ae9 hxatnled_1# af1 pxad[36] af10 pxad[19] af11 pxad[23] af12 vss af13 vss af14 nc af15 vss af16 pxreq[5]#/ hxprsnt1_2# af17 vcc33 af18 nc af19 strap_8 af2 pxad[39] af20 strap_5 af21 strap_6 af22 nc af23 nc af24 vss af25 vccaux3_3 af26 tms af27 vccaux3_3 af28 tdi af29 tdo af3 vss af30 vss af31 smbclk2 af32 smbd2 af33 vss af34 vss af35 ee_di af36 vss af4 pxad[38] af5 pxad[56] af6 vss af7 pxad[58] af8 pxcbe[2]# af9 vss ag1 pxperr# ag10 pxad[21] pin name pin number
signal lists 326 intel ? 631xesb/632xesb i/o controller hub datasheet ag11 vss ag12 vcc15 ag13 pxad[29] ag14 vss ag15 pxgnt[3]#/ hxpwren_2 ag16 pxgnt[4]#/ hxbusen_2# ag17 vcc33 ag18 reserved ag19 reserved ag2 vss ag20 vss ag21 reserved ag22 extintr# ag23 vss ag24 vccaux3_3 ag25 sdp3_0/led0_0 ag26 vss ag27 trst# ag28 tck ag29 vccaux3_3 ag3 pxad[40] ag30 pxpwrok ag31 smbalrt_2 ag32 vss ag33 smbclk1 ag34 smbd1 ag35 vss ag36 flsh_so ag4 pxad[42] ag5 vss ag6 pxad[57] ag7 pxad[59] ag8 vss ag9 pxad[16] ah1 pxplock# ah10 vss ah11 pxcbe[3]# ah12 pxad[26] ah13 vcc33 ah14 pxad[30] ah15 pxgnt[2]# ah16 vss ah17 reserved pin name pin number ah18 reserved ah19 vss ah2 pxad[41] ah20 sdta ah21 smbus[3] ah22 vss ah23 ebus_ad[17] ah24 sdp3_4/led1_0 ah25 vccaux3_3 ah26 sdram_a11/sdp3_7/ led1_3 ah27 sdram_a9/sdp3_5/led1_1 ah28 vss ah29 sdram_ad12/spd3_1/ led0_1 ah3 pxad[43] ah30 sdram_a10/sdp3_6/ led1_2 ah31 vccaux3_3 ah32 smbclk3 ah33 smbd3 ah34 vss ah35 flsh_sck ah36 flsh_si ah4 vss ah5 pxad[60] ah6 pxad[61] ah7 vss ah8 pxad[17] ah9 pxad[20] aj1 pxstop# aj10 pxad[22] aj11 pxad[24] aj12 vss aj13 pxad[28] aj14 pxad[31] aj15 vss aj16 pxpar aj17 hpclk aj18 vss aj19 rstin# aj2 pxad[44] aj20 sclk aj21 vss pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 327 aj22 ebus_ad[14] aj23 ebus_ad[16] aj24 vss aj25 ebus_ad[20] aj26 ebus_ad[21] aj27 vccaux3_3 aj28 ebus_ad[23] aj29 sdram_ba1/sdp3_3/ led0_3 aj3 vss aj30 vss aj31 sdram_ba0/sdp3_2/ led0_2 aj32 smbalrt_3 aj33 vss aj34 smbclk4 aj35 flsh_ce# aj36 vss aj4 pxad[45] aj5 pxad[62] aj6 vss aj7 pxad[63] aj8 pxad[18] aj9 vss ak1 pxdevsel# ak10 px133en ak11 vcc33 ak12 pxad[25] ak13 pxad[27] ak14 vss ak15 pxad[12] ak16 pxad[15] ak17 vcc33 ak18 hpdta ak19 smbus[1] ak2 vss ak20 vss ak21 strap_3 ak22 ebus_ad[13] ak23 vss ak24 ebus_ad[18] ak25 ebus_ad[19] ak26 vss ak27 ebus_ad[22] pin name pin number ak28 ebus_ad[24] ak29 vccaux3_3 ak3 pxad[47] ak30 sdp0_1 ak31 sdp0_0 ak32 vccaux3_3 ak33 smbalrt_4 ak34 smbd4 ak35 vss ak36 flbsd1 ak4 pxad[46] ak5 vss ak6 pxpar64 ak7 pxcbe[5]# ak8 vss ak9 reserved al1 vss al10 vss al11 pxad[5] al12 pxad[7] al13 vss al14 pxad[10] al15 pxad[13] al16 vss al17 nc al18 pxpcixcap al19 vss al2 pxad[48] al20 pastrap0 al21 smbus[5] al22 vss al23 ebus_ad[15] al24 ebus_ad[3] al25 vss al26 ebus_ad[8] al27 ebus_ad[9] al28 vss al29 lan0_dis# al3 pxad[49] al30 sdp0_2 al31 vss al32 sdp1_0 al33 pe_wake# pin name pin number
signal lists 328 intel ? 631xesb/632xesb i/o controller hub datasheet al34 vss al35 flbsd0 al36 flbsintex0 al4 vss al5 pxreq[2]# al6 pxcbe[4]# al7 vss al8 pxreq64# al9 pxad[1] am1 pxtrdy# am10 pxad[3] am11 pxad[6] am12 vcc33 am13 pxcbe[0]# am14 pxad[11] am15 vcc33 am16 pxcbe[1]# am17 nc am18 vss am19 specfg am2 pxirdy# am20 npecfg am21 vss am22 ebus_ad[0] am23 ebus_ad[2] am24 vss am25 ebus_ad[6] am26 ebus_ad[7] am27 vss am28 ebus_ad[11] am29 lan1_dis# am3 pxframe# am30 vccaux3_3 am31 sdp1_1 am32 sdp2_0 am33 vccaux3_3 am34 perst# am35 flbsintex1 am36 vss am4 pxgnt[1]# am5 pxcbe[6]# am6 vss am7 pxcbe[7]# pin name pin number am8 pxack64# am9 vcc33 an1 pxreq[4]#/ hxprsnt2_2# an10 pxad[4] an11 vss an12 pxad[8] an13 pxad[9] an14 vss an15 pxirq[5]# an16 pxad[14] an17 vss an18 reserved an19 vss an2 vss an20 vss an21 smbus[2] an22 ebus_ad[1] an23 vss an24 ebus_ad[4] an25 ebus_ad[5] an26 vss an27 ebus_ad[10] an28 ebus_ad[12] an29 vss an3 pxreq[0]# an30 rs232_sin an31 sdp2_1 an32 vss an33 sdp2_2 an34 sdp2_3 an35 vccaux3_3 an36 lan_pwr_good an4 pxgnt[0]# an5 vss an6 pxreq[3]#/ hxprsnt2_1# an7 hpx_pwren_1 an8 vss an9 pxad[2] ap1 vss ap10 vcc33 ap11 pxirq[15]#/ hxmrl1# ap12 pxirq[13]#/ hxpwrflt_2# pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 329 ap13 vcc33 ap14 pxirq[9]#/ hxpcixcap2_1 ap15 pxirq[6]# ap16 vcc33 ap17 hpx_sod/ hxclken_2# ap18 hpx_prst#/ hxrst1# ap19 vss ap2 pxreq[1]# ap20 hpx_solr/ hxatnled2# ap21 hpx_rst2# ap22 vss ap23 ebus_ce_2# ap24 ebus_ce_1# ap25 vss ap26 ebus_clk_2 ap27 ebus_oe#/ebus_cas# ap28 vss ap29 rs232_rts ap3 pxgnt[5]#/ hxbusen_1# ap30 rs232_dcd ap31 vccaux3_3 ap32 sdp1_2 ap33 sdp2_4 ap34 vss ap35 sdp2_5 ap36 vss ap4 vss ap5 pxpcirst# ap6 pxpme# ap7 vss ap8 pxad[0] ap9 pxirq[3]# ar10 pxirq[2]# ar11 pxirq[1]# ar12 vss ar13 pxirq[12]#/ hxm66en_2 ar14 pxirq[11]#/ hxm66en_1 ar15 vss ar16 pxirq[7]# ar17 pxirq[4]# ar18 vss ar19 hpx_sil#/ hxclken_1# ar2 vss pin name pin number ar20 hpx_slot[0]/ hxmrl_2# ar21 vss ar22 hpx_slot[1]/ hxprsnt1_1# ar23 hpx_slot[2] ar24 vss ar25 ebus_we# ar26 ebus_alat/ebus_cke ar27 vss ar28 reserved ar29 rs232_ri ar3 vss ar30 vss ar31 rs232_dtr ar32 rs232_dsr ar33 vccaux3_3 ar34 sdp2_6 ar35 vss ar4 pxpclki ar5 pxpclko[3] ar6 vss ar7 pxpclko[5] ar8 pxpclko[4] ar9 vss at10 pxirq[0]# at11 vcc33 at12 pxirq[14]#/ hxpwrflt_1# at13 pxirq[10]#/ hxpcixcap1_1 at14 vcc33 at15 pxirq[8]#/ hxbutton_1# at16 hpx_sid/ hxpcixcap1_2 at17 vcc33 at18 hpx_slot[3]/ hxpwrled1# at19 hpx_soc/ hxpcixcap2_2 at20 vss at21 hpx_sic/ hxpwrled2# at22 hpx_sol/ hxbutton2# at23 vss at24 ebus_be_1# at25 ebus_be_0# at26 vss at27 ebus_adv#/ebus_ras# at28 ebus_frst# pin name pin number
signal lists 330 intel ? 631xesb/632xesb i/o controller hub datasheet at29 vccaux3_3 at3 vss at30 rs232_sout at31 rs232_cts at32 vss at33 sdp2_7 at34 vss at4 pxpclko[2] at5 vss at6 pxpclko[6] at7 pxpclko[1] at8 vss at9 pxpclko[0] b10 da[1] b11 ideirq b12 vss b13 dior# / dwstb / rdmardy# b14 diow# / dstop b15 vss b16 sclk/gpo[20] b17 gpo[18] b18 vccarx b19 fwh[2]/lad[2] b2 vss b20 fwh[1]/lad[1] b21 vss b22 nmi b23 smi# b24 vccpcpu b25 pwrok b26 rtcx1 b27 vss b28 gpio[27] b29 pirq[c]# b3 vccpusb b30 vss b31 gnt[2]# b32 thrmtrip# b33 vss b34 clk14 b35 vss b4 usbp5n pin name pin number b5 usbp5p b6 vss b7 dcs3# b8 dcs1# b9 vss c1 vss c10 usbp0p c11 vss c12 dd[7] c13 dd[8] c14 vccpide c15 sdataout0/gpo[23] c16 sload/gpo[21] c17 vss c18 sata2gp/gpi[30] c19 fwh[3]/lad[3] c2 vss c20 vss c21 intr c22 stpclk# c23 vccpcpu c24 rcin# c25 intvrmen c26 vss c27 vccprtc c28 intruder# c29 vss c3 usbp6n c30 pirq[d]# c31 pirq[a]# c32 vss c33 spkr c34 pcirst# c35 vss c36 vss c4 usbp6p c5 vccpusb c6 usbp3n c7 usbp3p c8 vss c9 usbp0n d1 vccusbcore d10 vss pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 331 d11 dd[6] d12 dd[9] d13 vss d14 vcc5ref2 d15 nc d16 vccarx d17 gpio[34] d18 sata0gp/gpi[26] d19 vss d2 usbp7n d20 fwh[4]/lframe# d21 cpuslp# d22 vss d23 init# d24 vccpcpu d25 vss d26 gpio[24] d27 esidcac d28 vss d29 slp_s3# d3 usbp7p d30 smlink0 d31 vss d32 pirq[e]#/gpi[2] d33 gnt[0]# d34 vccpsus d35 req[5]#/gpi[1] d36 gnt[6]#/gpo[16] d4 vss d5 oc[0]# d6 oc[1]# d7 vss d8 usbp1n d9 usbp1p e1 oc[3]# e10 dd[0] e11 dd[2] e12 vccpide e13 dd[10] e14 dd[12] e15 vss e16 gpio[33] e17 gpi[7] pin name pin number e18 vss e19 sata3gp/gpi[31] e2 oc[2]# e20 ldrq[0]# e21 vss e22 a20gate e23 init3_3v# e24 vss e25 wake# e26 smbalert#/gpi[11] e27 vss e28 tp[0] e29 slp_s4# e3 vss e30 vss e31 pirq[f]#/gpi[3] e32 pirq[h]#/gpi[5] e33 vss e34 req[1]# e35 req[3]# e36 vss e4 oc[4]#/gpi[9] e5 vcc5refsus e6 vccpusb e7 usbp2n e8 usbp2p e9 vss f1 oc[5]#/gpi[10] f10 dd[1] f11 vss f12 dd[4] f13 dd[11] f14 vss f15 vccarx f16 sdataout1/gpio[32] f17 vccatx f18 sata1gp/gpi[29] f19 strap_7 f2 vss f20 vccatx f21 ldrq[1]#/gpi[41] f22 cpupwrgd/gpo[49] f23 vss pin name pin number
signal lists 332 intel ? 631xesb/632xesb i/o controller hub datasheet f24 thrm# f25 susclk f26 vss f27 gpio[25] f28 pwrbtn# f29 vss f3 esirxp[0] f30 smlink1 f31 pirq[g]#/gpi[4] f32 vccpsus f33 ad[30] f34 ad[29] f35 nc f36 devsel# f4 esirxn[0] f5 vss f6 oc[6]#/gpi[14] f7 oc[7]#/gpi[15] f8 vss f9 vccaupll g1 vss g10 vss g11 dd[3] g12 dd[5] g13 vss g14 dd[13] g15 dd[14] g16 vss g17 gpi[6] g18 sata4gp/gpi[12] g19 vccatx g2 esitxp[0] g20 sata3rxn g21 sata3rxp g22 vss g23 sataclkn g24 sataclkp g25 vss g26 vccapll g27 gpi[8] g28 vss g29 slp_s5# g3 esitxn[0] pin name pin number g30 smbclk g31 vss g32 ad[31] g33 ad[27] g34 vss g35 stop# g36 perr# g4 vccusbcore g5 esirxp[1] g6 esirxn[1] g7 vccpusb g8 esitxp[3] g9 esitxn[3] h1 pe0tn1 h10 vccusb h11 clk48 h12 vss h13 sata0txp h14 sata0txn h15 vccpide h16 sata1rxn h17 sata1rxp h18 vccatx h19 sata3txp h2 pe0tp1 h20 sata3txn h21 vss h22 sata5rxn h23 sata5rxp h24 vss h25 satarbias# h26 vccsata h27 vss h28 sus_stat#/lpcpd# h29 smbdata h3 vss h30 vccpsus h31 req[0]# h32 ad[28] h33 vss h34 ad[24] h35 plock# h36 vss pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 333 h4 esitxp[1] h5 esitxn[1] h6 vss h7 esirxp[2] h8 esirxn[2] h9 vss j1 esircompo j10 esirxn[3] j11 vss j12 usbrbias j13 usbrbias# j14 vss j15 sata1txp j16 sata1txn j17 vss j18 vccasatabg j19 vssasatabg j2 vss j20 vss j21 sata4txp j22 sata4txn j23 vss j24 serirq j25 satarbias j26 vss j27 ri# j28 gpio[28] j29 vss j3 pe0rn1 j30 ad[25] j31 ad[26] j32 vss j33 cbe[3]# j34 ad[14] j35 vss j36 serr# j4 pe0rp1 j5 vss j6 esitxp[2] j7 esitxn[2] j8 vccusbcore j9 esirxp[3] k1 vss pin name pin number k10 vss k11 vssaubg k12 vccaubg k13 vccpide k14 sata0rxn k15 sata0rxp k16 vccarx k17 sata2rxn k18 sata2rxp k19 vss k2 pe0tn2 k20 sata4rxn k21 sata4rxp k22 vrmpwrgd k23 sataled# k24 sys_reset# k25 vccpsus k26 vccpsus k27 strap_4 k28 vccpsus k29 cbe[0]# k3 pe0tp2 k30 req[4]#/gpi[40] k31 vccppci k32 ad[13] k33 ad[12] k34 vss k35 par k36 ad[15] k4 vss k5 pe0rp2 k6 pe0rn2 k7 vss k8 vccusbcore k9 vccusbcore l1 esiclk100n l10 vssbgesi l11 vccbgesi l12 vss l13 vccpide l14 vccpide l15 vss l16 sata2txp pin name pin number
signal lists 334 intel ? 631xesb/632xesb i/o controller hub datasheet l17 sata2txn l18 vccatx l19 sata5txp l2 esiicompi l20 sata5txn l21 vss l22 nc l23 vss l24 vss l25 vccpsus l26 vccpsus l27 vss l28 req[2]# l29 ad[7] l3 vss l30 vss l31 ad[22] l32 ad[23] l33 vccppci l34 ad[10] l35 cbe[1]# l36 vss l4 pe0tp3 l5 pe0tn3 l6 vss l7 pe0rp0 l8 pe0rn0 l9 vss m1 esiclk100p m10 nc m11 vccpe m12 nc m13 vccpide m14 vss m15 nc m16 vccarx m17 vss m18 vccatx m19 vss m2 vccpe m20 vss m21 nc m22 vss pin name pin number m23 nc m24 nc m25 vccpsus m26 vss m27 vccsus1 m28 pciclk m29 vccppci m3 pe0rp3 m30 ad[20] m31 ad[19] m32 vss m33 ad[5] m34 ad[6] m35 vccppci m36 ad[11] m4 pe0rn3 m5 vss m6 pe0tp0 m7 pe0tn0 m8 vss m9 vccaesi n1 vss n10 vss n11 vccp25ide n12 vccpe n13 vss n14 vcc n15 vss n16 vcc n17 vss n18 vcc n19 vss n2 pe4rp5 n20 vcc n21 vss n22 vcc n23 vss n24 vccppci n25 vss n26 vccppci n27 vccsus2 n28 vss n29 irdy# pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 335 n3 pe4rn5 n30 cbe[2]# n31 vccppci n32 ad[4] n33 ad[3] n34 vss n35 ad[9] n36 ad[8] n4 vccpe n5 pe4rp6 n6 pe4rn6 n7 vccpe n8 pe4tp7 n9 pe4tn7 p1 pe4tp4 p10 nc p11 nc p12 vccpe p13 vcc p14 vss p15 vcc p16 vss p17 vcc p18 vss p19 vcc p2 pe4tn4 p20 vss p21 vcc p22 vss p23 vcc p24 nc p25 vccppci p26 vccppci p27 vccppci p28 trdy# p29 gnt[1]# p3 vss p30 vss p31 pme# p32 pltrst# p33 vccppci p34 gnt[4]#/gpio[48] p35 gnt[3]# pin name pin number p36 vccppci p4 pe4tp5 p5 pe4tn5 p6 vss p7 pe4rp7 p8 pe4rn7 p9 vccpe r1 nc r10 pe4tp0 r11 vss r12 vss r13 vss r14 vcc r15 vss r16 vcc r17 vss r18 vcc r19 vss r2 vccpe r20 vcc r21 vss r22 vcc r23 vss r24 vss r25 vccppci r26 vss r27 vccppci r28 nc r29 vccppci r3 pe4rp4 r30 ad[17] r31 acz_sdout r32 vss r33 acz_sdin[0] r34 ad[21] r35 vss r36 ad[2] r4 pe4rn4 r5 vccpe r6 pe4tp6 r7 pe4tn6 r8 vss r9 pe4tn0 pin name pin number
signal lists 336 intel ? 631xesb/632xesb i/o controller hub datasheet t1 vss t10 vss t11 peicompi t12 vccpe t13 vcc t14 vss t15 vcc t16 vss t17 vcc t18 vss t19 vcc t2 pe4tn3 t20 vss t21 vcc t22 vss t23 vcc t24 vccppci t25 vss t26 vccppci t27 vccp25pci t28 vss t29 frame# t3 pe4tp3 t30 ad[16] t31 vss t32 acz_bit_clk t33 acz_sync t34 vss t35 ad[1] t36 ad[0] t4 vss t5 pe4rn2 t6 pe4rp2 t7 vccpe t8 pe4rn1 t9 pe4rp1 u1 pe4rn3 u10 pe4rn0 u11 pe4rp0 u12 vccpe u13 vss u14 vcc u15 vss pin name pin number u16 vcc u17 vss u18 vcc u19 vss u2 pe4rp3 u20 vcc u21 vss u22 vcc u23 vss u24 vss u25 nc u26 esb2_test1 u27 vss u28 esb2_test0 u29 vcc5ref1 u3 vccpe u30 vss u31 acz_sdin[1] u32 acz_sdin[2] u33 vss u34 acz_rst# u35 ad[18] u36 vss u4 pe4tn2 u5 pe4tp2 u6 vss u7 pe4tn1 u8 pe4tp1 u9 vss v1 vccbgpe v10 peclkn v11 vccpe v12 vss v13 vcc v14 vss v15 vcc v16 vss v17 vcc v18 vss v19 vcc v2 vss v20 vss v21 vcc pin name pin number
signal lists intel ? 631xesb/632xesb i/o controller hub datasheet 337 v22 vss v23 vcc v24 vss v25 nc v26 vss v27 serp0 v28 sern0 v29 vss v3 pe1tn1 v30 vcca3_3 v31 vssa3_3 v32 vss v33 vccapll1_5 v34 vssapll1_5 v35 vss v36 ser_clk_in v4 pe1tp1 v5 vccpe v6 vssape v7 vccape v8 vss v9 peclkp w1 vss w10 vss w11 percompo w12 vccpe w13 vss w14 vcc w15 vss w16 vcc w17 vss w18 vcc w19 vss w2 pe1rp2 w20 vcc w21 vss w22 vcc w23 vss w24 vccse w25 vss w26 vccse w27 vss w28 vss pin name pin number w29 setp0 w3 pe1rn2 w30 setn0 w31 vss w32 sercompo w33 seicompi w34 vss w35 sern1 w36 serp1 w4 vss w5 pe1rn1 w6 pe1rp1 w7 vccpe w8 pe1tn0 w9 pe1tp0 y1 pe1tp3 y10 pe1rp3 y11 pe1rn3 y12 vccpe y13 vcc y14 vss y15 vcc y16 vss y17 vcc y18 vss y19 vcc y2 pe1tn3 y20 vss y21 vccaux1_5 y22 vss y23 vccaux1_5 y24 vccse y25 vccse y26 vss y27 vccse y28 vss y29 vss y3 vccpe y30 vccse y31 vss y32 vss y33 vccse y34 setn1 pin name pin number
signal lists 338 intel ? 631xesb/632xesb i/o controller hub datasheet y35 setp1 y36 vss y4 pe1tn2 y5 pe1tp2 y6 vss y7 pe1rn0 y8 pe1rp0 y9 vccpe pin name pin number
intel ? 631xesb/632xesb i/o controller hub datasheet 339 mechanical specifications 9 mechanical specifications please refer to intel ? 631xesb /632xesb i/o controller hub thermal/mechanical design guidelines for more detail mechanical and thermal specification. figure 9-1. mechanical layout
340 intel ? 631xesb/632xesb i/o controller hub datasheet mechanical specifications figure 9-2. mechanical layout figure 9-3. mechanical layout
intel ? 631xesb/632xesb i/o controller hub datasheet 341 mechanical specifications figure 9-4. mechanical layout
342 intel ? 631xesb/632xesb i/o controller hub datasheet mechanical specifications
intel ? 631xesb/632xesb i/o controller hub datasheet 343 testability 10 testability 10.1 jtag test mode description the intel ? 631xesb/632xesb i/o controller hub includes a jtag (tap) port compliant with the ieee standard test access port and boundary scan architecture 1149.1 specification . the tap controller is accessed serially through the five dedicated pins tck, tms, tdi, tdo, and trst#. tms, tdi, and tdo operate synchronously with tck which is independent of all other clock within the intel ? 631xesb/632xesb i/o controller hub. trst# is an asynchronous test reset input signal. this 5-pin interface operates according to the ieee standard test access port and boundary scan architecture 1149.1 specification . this can be used for test and debug purposes. system board interconnects can be dc tested using the boundary scan logic in pads. the intel ? 631xesb/632xesb i/o controller hub does not provide for accesses to the internal register space through jtag. smbus must instead be used. ta bl e 1 0 - 1 shows tap controller related pin descriptions. table 10-1. tap controller pins signal i/o description tck i test clock input for the test logic defined by ieee1149.1. if utilizing jtag, connect to this signal ground through a 1 k pull-down resistor. tdi i test data input. serial test instructions and data are received by the test logic at this pin. if utilizing jtag, connect this signal to vcc33 through a 1 k pull-up resistor. tdo o test data output. the serial output for the test instructions and data from the test logic defined in ieee1149.1. if utilizing jtag, connect this signal to vcc33 through a 1 k pull-up resistor. tms i test mode select input. the signal received at tms is decoded by the tap controller to control test oper ations. if utilizing jtag, this pin should have an external 1 k pull-up to vcc33. trst# i test reset input. the optional trst# input provides for asynchronous initialization of the tap controller. if utilizing jtag, connect this signal to ground through a 1 k pull-down resistor. table 10-2. tap instructions supported by the intel ? 631xesb/632xesb i/o controller hub (sheet 1 of 2) instruction description comment bypass the bypass command selects the bypass register, a single bit register connected between tdi and tdo pins. this allows more rapid movement of test data to and from other components in the system. ieee 1149.1 std. instruction extest the extest instruction allows circuitry or wiring external to the devices to be tested. boundary-scan register cells at outputs are used to apply stimulus while boundary-scan cells at input pins are used to capture data. ieee 1149.1 std. instruction
344 intel ? 631xesb/632xesb i/o controller hub datasheet testability 10.2 xor chain test mode description the intel ? 631xesb/632xesb i/o controller hub supports xor chain test mode. this non-functional test mode is a dedicated test mode when the chip is not operating in its normal manner. the xor chain mode is entered when acz_sdout is sampled at high and tp[0] is sampled low upon the assertion of pwrok. req[4:1]# straps are used to determine the xor chain that is selected. see the table below: sample / preload the sample/preload instruction is used to allow scanning of the boundary scan register without causing interference to the normal operation of the device. two functions can be performed by use of the sample/ preload instruction. sample ? allows a snapshot of the data flowing into and out of a device to be taken without affecting the normal operation of the device. preload ? allows an initial pattern to be placed into the boundary scan register cells. this allows initial known data to be present prior to the selection of another boundary-scan test operation. ieee 1149.1 std. instruction idcode the idcode instruction is forced into the parallel output latches of the instruction register during the test-logic-reset tap state. this allows the device identification register to be selected by manipulation of the broadcast tms and tck signals for testing purposes, as well as by a conventional instruction register scan operation. ieee 1149.1 std. instruction clamp this allows static ?guarding values? to be set onto components that are not specifically being tested while maintaining the bypass register as the serial path through the device. ieee 1149.1 std. instruction highz the highz instruction is used to force all outputs of the device (except tdo) into a high impedance state. this instruction shall select the bypass register to be connected between tdi and tdo in the shift-dr controller state. ieee 1149.1 std. instruction table 10-2. tap instructions supported by the intel ? 631xesb/632xesb i/o controller hub (sheet 2 of 2) req# settings xor chain req[4:1]# = 0000 xor 1 req[4:1]# = 0001 xor 2 req[4:1]# = 0010 xor 3 req[4:1]# = 0011 xor 4 req[4:1]# = 0100 xor 5 figure 10-1. example xor chain circuitry
intel ? 631xesb/632xesb i/o controller hub datasheet 345 testability 10.2.1 xor chain testability algorithm example xor chain testing allows motherboard manufacturers to check component connectivity (for example.,opens and shorts to vcc or gnd). an example algorithm is shown in ta bl e 1 0 - 3 . in this example, vector 1 applies all 0?s to the chain inputs. the outputs being non- inverting will consistently produce a 1 at the xor output on a good board. one short to vcc (or open floating to vcc) will result in a 0 at the chain output, signaling a defect. likewise, applying vector 7 (all 1s) to the chain inputs (given that there are an even number of input signals in the chain), will consistently produce a 1 at the xor chain output on a good board. one short to vss (or open floating to vss) will result in a 0 at the chain output, signaling a defect. it is important to note that the number of inputs pulled to 1 will affect the expected chain output value. if the number of chain inputs pulled to 1 is even, then expect 1 at the output. if the number of chain inputs pulled to 1 is odd, expect 0 at the output. continuing with the example in ta b l e 1 0 - 3 , as the input pins are driven to 1 across the chain in sequence, the xor output will toggle between 0 and 1. any break in the toggling sequence (for example, ?1011?) will identify the location of the short or open. 10.3 xor chain tables table 10-3. xor test pattern example vector input pin 1 input pin 2 input pin 3 input pin 4 input pin 5 input pin 6 xor output 10000001 21000000 31100001 41110000 51111001 61111100 71111111 table 10-4. xor chain #1 (req[4:1]# = 0000) (sheet 1 of 2) pin name ball # notes pin name ball # notes clk48 h11 top of xor chain dd[7] c12 15th signal in xor da[0] a09 2nd signal in xor dd[4] f12 da[1] b10 dd[5] g12 da[2] a08 iordy/drstb/ wdmardy# a12 dcs3# b07 dior#/dwstb/ rdmardy b13 dcs1# b08 dd[10] e13 dd[2] e11 dd[8] c13 dd[1] f10 diow#/dstop b14 dd[0] e10 ddreq a14 dd[3] g11 dd[12] e14
346 intel ? 631xesb/632xesb i/o controller hub datasheet testability dd[6] d11 dd[11] f13 ideirq b11 dd[13] g14 ddack# a11 dd[14] g15 dd[9] d12 dd[15] a15 ri# j27 xor chain #1 output table 10-5. xor chain #2 (req[4:1]# = 0001) pin name ball # notes pin name ball # notes satarbias# h25 top of xor chain gpi[7] e17 22nd signal in xor satarbias j25 2nd signal in xor gpi[31]/ sata3gp e19 sata0rxn k14 gpi[12]/ sata4gp g18 sata0rxp k15 gpi[29]/ sata1gp f18 sata0txn h14 gpi[26]/ sata0gp d18 sata0txp h13 thrm# f24 sata1rxn h16 vrmpwrgd k22 sata1rxp h17 strap_7 f19 sata1txn j16 sataled# k23 sata1txp j15 serirq j24 gpio[32]/ sdataout1 f16 rcin# c24 gpio[33] e16 a20gate e22 sload/gpo[21] c16 init3_3v# e23 gpo[23]/ sdataout0 c15 lad[3]/fwh[3] c19 gpio[34] d17 lad[2]/fwh[2] b19 gpo[18] b17 lad[1]/fwh[1] b20 gpo[19] a17 esidcac d27 gpo[20]/sclk b16 lad[0]/fwh[0] a20 gpi[6] g17 lframe#/ fwh[4] d20 gpi[13]/sata5gp a18 ldrq[0]# e20 gpi[30]/sata2gp c18 gpi[41]/ ldrq[1]# f21 req[5]#/gpi[1] d35 xor chain #2 output table 10-4. xor chain #1 (req[4:1]# = 0000) (sheet 2 of 2) pin name ball # notes pin name ball # notes
intel ? 631xesb/632xesb i/o controller hub datasheet 347 testability table 10-6. xor chain #3 (req[4:1]# = 0010) pin name ball # notes pin name ball # notes stpclk# c22 top of xor chain sus_stat#/ lpcpd# h28 19th signal in xor a20m# a21 2nd signal in xor gpio[25] f27 cpuslp# d21 reserved e28 intr c21 gpio[24] d26 nmi b22 pwrbtn# f28 gpo[49]/ cpupwrgd f22 ri# j27 init# d23 gpi[8] g27 smi# b23 gpio[28] j28 ignne# a23 slp_s3# d29 ferr# a24 slp_s4# e29 thrmtrip# b32 slp_s5# g29 intruder# c28 smbdata h29 intvrmen c25 smbclk g30 gpi[11]/ smbalert# e26 smlink1 f30 sys_reset# k24 smlink0 d30 susclk f25 pme# p31 wake# e25 pcirst# c34 gpio[27] b28 pltrst# p32 req[5]#/gpi[1] d35 xor chain #3 output table 10-7. xor chain #4-1 (req[4:1]# = 0011) (sheet 1 of 2) pin name ball # notes pin name ball # notes sata2rxn k17 top of xor chain ad[30] f33 37th signal in xor sata2rxp k18 2nd signal in xor serr# j36 sata2txn l17 ad[14] j34 sata2txp l16 cbe[3]# j33 sata3rxn g20 ad[26] j31 sata3rxp g21 ad[13] k32 sata3txn h20 ad[12] k33 sata3txp h19 gpi[40]/ req[4]# k30 gpi[12]/sata4gp g18 cbe[0]# k29 pirq[d]# c30 req[2]# l28 spkr c33 ad[7] l29 clk14 b34 ad[15] k36 gpi[5]/pirq[h]# e32 par k35 gpi[4]/pirq[g]# f31 cbe[1]# l35 gpi[3]/pirq[f]# e31 ad[10] l34
348 intel ? 631xesb/632xesb i/o controller hub datasheet testability gpi[2]/pirq[e]# d32 ad[22] l31 pirq[a]# c31 ad[23] l32 pirq[b]# a30 pciclk m28 pirq[c]# b29 ad[20] m30 gpi[0]/req[6]# a33 ad[19] m31 gpo[16]/gnt[6]# d36 ad[6] m34 gpi[1]/req[5]# d35 cbe[2]# n30 gnt[2]# b31 ad[5] m33 gpo[17]/gnt[5]# a32 ad[11] m36 devsel# f36 irdy# n29 req[1]# e34 ad[9] n35 gnt[0]# d33 ad[8] n36 perr# g36 ad[4] n32 stop# g35 ad[3] n33 ad[27] g33 trdy# p28 req[3]# e35 gnt[1]# p29 ad[29] f34 gpio[48]/ gnt[4]# p34 ad[24] h34 gnt[3]# p35 plock# h35 ad[17] r30 ad[28] h32 ad[21] r34 ad[25] j30 frame# t29 req[0]# h31 38th signal in xor ad[2] r36 46th signal in xor ad[31] g32 ad[18] u35 ad[0] t36 acz_rst# u34 ad[1] t35 acz_sdin[2] u32 ad[16] t30 acz_sdin[1] u31 acz_sync t33 acz_sdin[0] r33 acz_bit_clk t32 gpi[11]/ smbalert# e26 acz_sdout r31 ri# j27 xor chain #4 output table 10-7. xor chain #4-1 (req[4:1]# = 0011) (sheet 2 of 2) pin name ball # notes pin name ball # notes
intel ? 631xesb/632xesb i/o controller hub datasheet 349 testability 2 note: all the pin name and ball # in above tables are the superset of intel ? 631xesb/632xesb i/o controller hub sku definition (section 1.3) in chapter 1. table 10-8. xor chain #5 (req[4:1]# = 0100) pin name ball # notes pin name ball # notes esitxn[0] g03 top of xor chain sata4rxn k20 25th signal in xor esitxp[0] g02 2nd signal in xor sata4rxp k21 esirxn[0] f04 sata4txn j22 esirxp[0] f03 sata4txp j21 esitxn[1] h05 sata5rxn h22 esitxp[1] h04 sata5rxp h23 esirxn[1] g06 sata5txn l20 esirxp[1] g05 sata5txp l19 esitxn[2] j07 gpi[9]/oc[4]# e04 esitxp[2] j06 gpi[10]/oc[5]# f01 esirxn[2] h08 gpi[14]/oc[6]# f06 esirxp[2] h07 gpi[15]/oc[7] # f07 esitxn[3] g09 oc[3]# e01 esitxp[3] g08 oc[2]# e02 esirxn[3] j10 oc[1]# d06 esirxp[3] j09 oc[0]# d05 pe0tn0 m07 usbp0n c09 pe0tp0 m06 usbp0p c10 pe0rn0 l08 usbp1n d08 pe0rp0 l07 usbp1p d09 pe0tn1 h01 usbp2n e07 pe0tp1 h02 usbp2p e08 pe0rn1 j03 usbp3n c06 pe0rp1 j04 usbp3p c07 pe0tn2 k02 usbp4n a05 pe0tp2 k03 usbp4p a06 pe0rn2 k06 usbp5n b04 pe0rp2 k05 usbp5p b05 pe0tn3 l05 usbp6n c03 pe0tp3 l04 usbp6p c04 pe0rn3 m04 usbp7n d02 pe0rp3 m03 usbp7p d03 req[5]#/gpi[1] d35 xor chain #5 output
350 intel ? 631xesb/632xesb i/o controller hub datasheet testability
intel ? 631xesb/632xesb i/o controller hub datasheet 351 register and memory mapping 11 register and memory mapping the intel ? 631xesb/632xesb i/o controller hub contains registers that are located in the processor?s i/o space and memory space and sets of pci configuration registers that are located in pci configuration space. this section describes the intel ? 631xesb/ 632xesb i/o controller hub i/o and memory maps at the register-set level. register access is also described. register-level address maps and individual register bit descriptions are provided in the following sections. the following notations and definitions are used in the register/instruction description sections. 11.1 register nomenclature and access attributes table 11-1. register nomenclature and access attributes symbol description ro read only. if a register is read only, writes to this register have no effect.however, in other cases, two separate registers are located at the same location where a read accesses one of the registers and a write accesses the other register. see the i/o and memory map tables for details. wo write only. in some cases, if a register is write only, reads to this register location have no effect. however, in other cases, two separate registers are located at the same location where a read accesses one of the registers and a write accesses the other register. see the i/o and memory map tables for details. ros read-only sticky . register bits are read-only and cannot be altered by software. bits are not cleared by reset and can only be reset with the pwrok reset condition. rw read/write. a register with this attribute can be read and written. rwc read/write clear. a register bit with this attribute can be read and written. however, a write of a 1 clears (sets to 0) the corresponding bit and a write of a 0 has no effect. rwcs read and write one to clear and sticky. through reset. software needs to write a 1 to this bit to clear it when set. write of 0 has no effect on this bit. only a pwrok reset can reset this bit. rwo read/write once. a register bit with this attribute can be written to only once after power up. after the first write, the bit becomes read only. rws read-write and sticky. software can read and write from this bit and only a pwrok reset can reset this bit. reserved bits some of the registers described in the registers section contain reserved bits. these bits are labeled "reserved?. software must deal correctly with fields that are reserved. on reads, software must use appropriate masks to extract the defined bits and not rely on reserved bits being any particular value. on writes, software must ensure that the values of reserved bit positions are preserved. that is, the values of reserved bit positions must first be read, merged with the new values for other bit positions and then written back. note the software does not need to perform read, merge, and write operations for the configuration address register. reserved registers in addition to reserved bits within a register, some address locations in the configuration space that are marked "reserved?. when a ?reserved? register location is read, a random value can be returned. (?reserved? registers can be 8-, 16-, or 32-bit in size). registers that are marked as ?reserved? must not be modified by system soft ware. writes to ?reserved? registers may cause system failure. default value upon reset upon a full reset, the intel ? 631xesb/632xesb i/o controller hub sets its internal configuration registers to predetermined default states. the default state represents the minimum functionality feature set required to successfully bring up the system. hence, it does not represent the optimal system configuration. it is the responsibility of the system initialization software (usually bios) to properly determine the operating parameters and optional system features that are applicable, and to program the registers accordingly. bold register bits that are highlighted in bold te xt indicate that the bit is implemented in the intel ? 631xesb/632xesb i/o controller hub. register bits that are not implemented or are hardwired will remain in plain text.
352 intel ? 631xesb/632xesb i/o controller hub datasheet register and memory mapping 11.2 pci devices and functions the intel ? 631xesb/632xesb i/o controller hub incorporates a variety of pci functions as shown in table 11-2 . these functions are divided into seven logical devices (b0:d0, b0:d30, b0:d31, b0:d29, b0:d28, b0:d27 and b1:d8). d0 device contains the pci express to pci-x bridge, i/oxapic controller, and pci express upstream port. d30 contains the esi interface-to-pci bridge and the ac?97 audio and modem controller. d31 contains the pci-to-lpc bridge, ide controller, sata controller, and the smbus controller. d29 contains the four usb uhci controllers and one usb ehci controller. lastly, d27 contains the azalia controller. if for some reason, the particular system platform does not want to support any one of the device functions, with the exception of d30:f0, they can be individually disabled. when a function is disabled, it does not appear at all to the software. a disabled function will not respond to any register reads or writes. this is intended to prevent software from thinking that a function is present (and reporting it to the end-user). b table 11-2. pci devices and functions (sheet 1 of 2) bus:device:function function description bus m:device 0:function 0 pci express upstream port bus m:device 0:function 1 i/oxapic controller bus m:device 0:function 3 pci express-to-pci-x bridge bus p:device 0:function 0 pci express downstream port e1 bus p:device 1:function 0 pci express downstream port e2 bus p:device 2:function 0 pci express downstream port e3 bus 0:device 30:function 0 pci-to-pci bridge bus 0:device 30:function 2 ac?97 audio controller bus 0:device 30:function 3 ac?97 modem controller bus 0:device 31:function 0 lpc controller 1 bus 0:device 31:function 1 ide controller bus 0:device 31:function 2 sata controller bus 0:device 31:function 3 smbus controller bus 0:device 29:function 0 usb uhci controller #1 bus 0:device 29:function 1 usb uhci controller #2 bus 0:device 29:function 2 usb uhci controller #3 bus 0:device 29:function 3 usb uhci controller #4 bus 0:device 29:function 7 usb 2.0 ehci controller bus 0:device 28:function 0 pci express port 1 bus 0:device 28:function 1 pci express port 2 bus 0:device 28:function 2 pci express port 3 bus 0:device 28:function 3 pci express port 4 bus 0:device 27:function 0 azalia controller bus n:device 8:function 0 lan 0/lan 1 controller bus n:device 8:function 1 lan 0/lan 1 controller bus n:device 8:function 2 ide redirection controller bus n:device 8:function 3 serial port redirection controller
intel ? 631xesb/632xesb i/o controller hub datasheet 353 register and memory mapping note: the lpc controller contains registers that control lpc, power management, system management, gpio, processor interface, rtc, interrupts, timers, and dma. 11.3 pci configuration map each pci function on the intel ? 631xesb/632xesb i/o controller hub has a set of pci configuration registers. the register addre ss map tables for these register sets are included at the beginning of the section for the particular function. configuration space registers are accessed through configuration cycles on the pci bus by the host bridge using configuration mechanism #1 detailed in the pci local bus specification, revision 2.3 . some of the pci registers contain reserved bits. software must deal correctly with fields that are reserved. on reads, software must use appropriate masks to extract the defined bits and not rely on reserved bits being any particular value. on writes, software must ensure that the values of reserved bit positions are preserved. that is, the values of reserved bit positions must first be read, merged with the new values for other bit positions and then written back. note the software does not need to perform read, merge, write operation for the configuration address register. in addition to reserved bits within a register, the configuration space contains reserved locations. software should not write to reserved pci configuration locations in the device-specific region (above address offset 3fh). 11.4 i/o map the i/o map is divided into fixed and variable address ranges. fixed ranges cannot be moved, but in some cases can be disabled. variable ranges can be moved and can also be disabled. 11.4.1 fixed i/o address ranges ta bl e 1 1 - 3 shows the fixed i/o decode ranges from the processor perspective. note that for each i/o range, there may be separate behavior for reads and writes. esi (enterprise southbridge interface) cycles that go to target ranges that are marked as ?reserved? will not be decoded by the intel ? 631xesb/632xesb i/o controller hub, and will be passed to pci. if a pci master targets one of the fixed i/o target ranges, it will be positively decoded by the intel ? 631xesb/632xesb i/o controller hub in medium speed. bus n:device 8:function 4 ipmi/kcs0 bus n:device 8:function 5 uhci redirection controller bus n:device 8:function 7 bt controller table 11-2. pci devices and functions (sheet 2 of 2) bus:device:function function description
354 intel ? 631xesb/632xesb i/o controller hub datasheet register and memory mapping table 11-3. fixed i/o ranges decoded by the intel ? 631xesb/632xesb i/o controller hub (sheet 1 of 2) i/o address read target write target internal unit 00h?08h dma controller dma controller dma 09h?0eh reserved dma controller dma 0fh dma controller dma controller dma 10h?18h dma controller dma controller dma 19h?1eh reserved dma controller dma 1fh dma controller dma controller dma 20h?21h interrupt controller interrupt controller interrupt 24h?25h interrupt controller interrupt controller interrupt 28h?29h interrupt controller interrupt controller interrupt 2ch?2dh interrupt controller interrupt controller interrupt 2e?2f lpc sio lpc sio forwarded to lpc 30h?31h interrupt controller interrupt controller interrupt 34h?35h interrupt controller interrupt controller interrupt 38h?39h interrupt controller interrupt controller interrupt 3ch?3dh interrupt controller interrupt controller interrupt 40h?42h timer/counter timer/counter pit (8254) 43h reserved timer/counter pit 4e?4f lpc sio lpc sio forwarded to lpc 50h?52h timer/counter timer/counter pit 53h reserved timer/counter pit 60h microcontroller microcontroller forwarded to lpc 61h nmi controller nmi controller processor i/f 62h microcontroller microcontroller forwarded to lpc 63h nmi controller nmi controller processor i/f 64h microcontroller microcontroller forwarded to lpc 65h nmi controller nmi controller processor i/f 66h microcontroller microcontroller forwarded to lpc 67h nmi controller nmi controller processor i/f 70h reserved nmi and rtc controller rtc 71h rtc controller rtc controller rtc 72h rtc controller nmi and rtc controller rtc 73h rtc controller rtc controller rtc 74h rtc controller nmi and rtc controller rtc 75h rtc controller rtc controller rtc 76h rtc controller nmi and rtc controller rtc 77h rtc controller rtc controller rtc 80h dma controller, or lpc, or pci dma controller and lpc or pci dma 81h?83h dma controller dma controller dma 84h?86h dma controller dma controller and lpc or pci dma 87h dma controller dma controller dma
intel ? 631xesb/632xesb i/o controller hub datasheet 355 register and memory mapping notes: 1. a read to this address will subtractively go to pci, where it will master abort. 2. only if ide i/o space is enabled (d31:f1:40 bit 15) and the ide controller is in legacy mode. otherwise, the target is pci. 11.4.2 variable i/o decode ranges ta bl e 1 1 - 4 shows the variable i/o decode ranges. they are set using base address registers (bars) or other configuration bits in the various pci configuration spaces. the pnp software (pci or acpi) can use their configuration mechanisms to set and adjust these values. warning: the variable i/o ranges should not be set to conflict with the fixed i/o ranges. unpredictable results if the configuration software allows conflicts to occur. the intel ? 631xesb/632xesb i/o controller hub does not perform any checks for conflicts. 88h dma controller dma controller and lpc or pci dma 89h?8bh dma controller dma controller dma 8ch?8eh dma controller dma controller and lpc or pci dma 08fh dma controller dma controller dma 90h?91h dma controller dma controller dma 92h reset generator reset generator processor i/f 93h?9fh dma controller dma controller dma a0h?a1h interrupt controller interrupt controller interrupt a4h?a5h interrupt controller interrupt controller interrupt a8h?a9h interrupt controller interrupt controller interrupt ach?adh interrupt controller interrupt controller interrupt b0h?b1h interrupt controller interrupt controller interrupt b2h?b3h power management powe r management power management b4h?b5h interrupt controller interrupt controller interrupt b8h?b9h interrupt controller interrupt controller interrupt bch?bdh interrupt controller interrupt controller interrupt c0h?d1h dma controller dma controller dma d2h?ddh reserved dma controller dma deh?dfh dma controller dma controller dma f0h pci and master abort 1 ferr#/ignne# / interrupt controller processor i/f 170h?177h ide controller, sata controller, or pci ide controller, sata controller, or pci forwarded to ide or sata 1f0h?1f7h ide controller, sata controller, or pci 2 ide controller, sata controller, or pci forwarded to ide or sata 376h ide controller, sata controller, or pci ide controller, sata controller, or pci forwarded to ide or sata 3f6h ide controller, sata controller, or pci 2 ide controller, sata controller, or pci forwarded to ide or sata 4d0h?4d1h interrupt controller interrupt controller interrupt cf9h reset generator reset generator processor i/f table 11-3. fixed i/o ranges decoded by the intel ? 631xesb/632xesb i/o controller hub (sheet 2 of 2) i/o address read target write target internal unit
356 intel ? 631xesb/632xesb i/o controller hub datasheet register and memory mapping 11.5 memory map ta b l e 1 1 - 5 shows (from the processor perspective) the memory ranges that the intel ? 631xesb/632xesb i/o controller hub decodes. cycles that arrive from esi that are not directed to any of the internal memo ry targets that decode directly from esi will be driven out on pci. table 11-4. variable i/o decode ranges range name mappable size (bytes) target acpi anywhere in 64 kb i/o space 64 power management ide bus master anywhere in 64 kb i/o space 16 ide unit usb uhci controller #1 anywhere in 64 kb i/o space 32 usb unit 1 smbus anywhere in 64 kb i/o space 32 smb unit ac?97 audio mixer anywhere in 64 kb i/o space 256 ac?97 unit ac?97 audio bus master anywhere in 64 kb i/o space 64 ac?97 unit ac?97 modem mixer anywhere in 64 kb i/o space 256 ac?97 unit ac?97 modem bus master anywhere in 64 kb i/o space 128 ac?97 unit tco 96 bytes above acpi base 32 tco unit gpio anywhere in 64 kb i/o space 64 gpio unit parallel port 3 ranges in 64 kb i/o space 8 lpc peripheral serial port 1/2 8 ranges in 64 kb i/o space 8 lpc peripheral floppy disk controller 2 ranges in 64 kb i/o space 8 lpc peripheral usb uhci controller 2/3/4 anywhere in 64 kb i/o space 32 usb unit 2/3/4 lpc generic 1 anywhere in 64 kb i/o space 128 lpc peripheral lpc generic 2 anywhere in 64 kb i/o space 16 lpc peripheral i/o trapping ranges anywhere in 64 kb i/o space 1 to 256 trap on backbone native ide command anywhere in 64 kb i/o space 8 ide unit native ide control anywhere in 64 kb i/o space 4 ide unit lan i/o space 0/1 anywhere in 64 kb i/o space 32 lan unit serial port anywhere in 64 kb i/o space 8 lan/serial port for remote keyboard and text redirection ide command anywhere in 64 kb i/o space 8 lan/remote boot and installations ide io control anywhere in 64 kb i/o space 4 lan/remote boot and installations ide io bus master anywhere in 64 kb i/o space 16 lan/remote boot and installations ipmi/kcs anywhere in 64 kb i/o space 4 lan/enhanced manageability functionality uhci anywhere in 64 kb i/o space 32 lan/enhanced manageability functionality bt anywhere in 64 kb i/o space 4 lan/enhanced manageability functionality
intel ? 631xesb/632xesb i/o controller hub datasheet 357 register and memory mapping pci cycles generated by external pci masters will be positively decoded unless they fall in the pci-to-pci bridge memory forwarding ranges. software must not attempt locks to the intel ? 631xesb/632xesb i/o controller hub?s memory-mapped i/o ranges for usb2, and hpet. if attempted, the lock is not honored which means potential deadlock conditions may occur. table 11-5. memory decode ranges from processor perspective (sheet 1 of 2) memory range target dependency/comments 0000 0000h?000d ffffh 0010 0000h?tom (top of memory) main memory tom registers in host controller 000e 0000h?000e ffffh firmware hub bit 6 in firmwa re hub decode enable register is set 000f 0000h?000f ffffh firmware hub bit 7 in firmware hub decode enable register is set fec0 0000h?fec0 0100h i/o apic inside intel ? 631xesb/632xesb i/o controller hub ffc0 0000h?ffc7 ffffh ff80 0000h?ff87 ffffh firmware hub (or pci) 3 bit 8 in firmware hub decode enable register is set ffc8 0000h?ffcf ffffh ff88 0000h?ff8f ffffh firmware hub (or pci) 3 bit 9 in firmware hub decode enable register is set ffd0 0000h?ffd7 ffffh ff90 0000h?ff97 ffffh firmware hub (or pci) 3 bit 10 in firmware hub decode enable register is set ffd8 0000h?ffdf ffffh ff98 0000h?ff9f ffffh firmware hub (or pci) 3 bit 11 in firmware hub decode enable register is set ffe0 000h?ffe7 ffffh ffa0 0000h?ffa7 ffffh firmware hub (or pci) 3 bit 12 in firmware hub decode enable register is set ffe8 0000h?ffef ffffh ffa8 0000h?ffaf ffffh firmware hub (or pci) 3 bit 13 in firmware hub decode enable register is set fff0 0000h?fff7 ffffh ffb0 0000h?ffb7 ffffh firmware hub (or pci) 3 bit 14 in firmware hub decode enable register is set fff8 0000h?ffff ffffh ffb8 0000h?ffbf ffffh firmware hub (or pci) 3 always enabled. the top two 64 kb blocks of this range can be swapped. ff70 0000h?ff7f ffffh ff30 0000h?ff3f ffffh firmware hub (or pci) 3 bit 3 in firmware hub decode enable register is set ff60 0000h?ff6f ffffh ff20 0000h?ff2f ffffh firmware hub (or pci) 3 bit 2 in firmware hub decode enable register is set ff50 0000h?ff5f ffffh ff10 0000h?ff1f ffffh firmware hub (or pci) 3 bit 1 in firmware hub decode enable register is set ff40 0000h?ff4f ffffh ff00 0000h?ff0f ffffh firmware hub (or pci) 3 bit 0 in firmware hub decode enable register is set 1 kb anywhere in 4-gb range usb ehci controller 2 enable via standard pci mechanism (device 29, function 7) 512 b anywhere in 4-gb range ac?97 host controller (mixer) enable via standard pci mechanism (device 30, function 2) 256 b anywhere in 4-gb range ac?97 host controller (bus master) enable via standard pci mechanism (device 30, function 3) 512 b anywhere in 64-bit addressing space intel high definition audio host controller enable via standard pci mechanism (device 30, function 1) fed0 x000h?fed0 x3ffh high precision event timers 2 bios determines the ?fixed? location which is one of four, 1-kb ranges where x (in the first column) is 0h, 1h, 2h, or 3h. 128 kb anywhere in 4-gb range, 64-bit range integrated lan controller 1 (mem space) enable via bar in device bn:function 0/1 (integrated lan controller) 64 kb to 8 mb anywhere in 4-gb, 64-bit range integrated lan controller 1 (flash space) enable via bar in device bn:function 0 (integrated lan controller)
358 intel ? 631xesb/632xesb i/o controller hub datasheet register and memory mapping notes: 1. only lan cycles can be seen on pci. 2. software must not attempt locks to memory mapped i/o ranges for usb ehci or high precision event timers. if attempted, the lock is not honored, wh ich means potential deadlock conditions may occur. 3. pci is the target when the boot bios destination se lection bit is low (chipset config registers:offset 3401:bit 3). when pci selected, the firmware hub decode enable bits have no effect. 4. programmable range. 4 kb anywhere in 4-gb range, 64-bit range integrated lan controller 1 (ide) enable via bar in device bn:function 2(integrated lan controller) 4 kb anywhere in 4-gb range, 64-bit range integrated lan controller 1 (serial) enable via bar in device bn:function 3(integrated lan controller) 4 kb anywhere in 4-gb range, 64-bit range integrated lan controller 1 (ipmi/kcs) enable via bar in device bn:function 4(integrated lan controller) 4 kb anywhere in 4-gb range, 64-bit range integrated lan controller 1 (uhci) enable via bar in device bn:function 5(integrated lan controller) 4 kb anywhere in 4-gb range, 64-bit range integrated lan controller 1 (bt) enable via bar in device bn:function 7(integrated lan controller) anywhere in 4-gb, 64-bit range4 intel ? 631xesb/632xesb i/o controller hub pci express switch (prefetch memory) enable via bar in bm:device 0:function 0 4 kb anywhere in 64-bit range intel ? 631xesb/632xesb i/o controller hub pci express switch (shpc) enable via bar in bm:device 0:function 0 4 kb anywhere in 4-gb range intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) enable via mbar in bm:device 0:function 1 table 11-5. memory decode ranges from processor perspective (sheet 2 of 2) memory range target dependency/comments
intel ? 631xesb/632xesb i/o controller hub datasheet 359 chipset configuration registers 12 chipset configuration registers this section describes all registers and base functionality that is related to chipset configuration and not a specific interface (such as lpc, pci, or pci express). it contains the root complex register block, which describes the behavior of the upstream internal link. this block is mapped into memory space, using register rcba of the pci-to-lpc bridge. accesses in this space must be limited to 32-(dw) bit quantities. burst accesses are not allowed. 12.1 chipset configuration registers (memory space) note: address locations that are not shown should be treated as reserved (see section 11.1 for details). table 12-1. chipset configuration register memory map (memory space) (sheet 1 of 3) offset mnemonic register name default type 0000?0003h vch virtual channel capability header 10010002h ro 0004?0007h vcap1 virtual channel capability #1 00000801h ro 0008?000bh vcap2 virtual channel capability #2 00000001h ro 000c?000dh pvc port vc control 0000h r/w, ro 000e?000fh pvs port vc status 0000h ro 0010?0013h v0cap vc 0 resource capability 00000001h ro 0014?0017h v0ctl vc 0 resource control 800000ffh r/w, ro 001a?001bh v0sts vc 0 resource status 0000h ro 001c?001fh v1cap vc 1 resource capability 30008010h r/wo, ro 0020?0023h v1ctl vc 1 resource control 00000000h r/w, ro 0026?0027h v1sts vc 1 resource status 0000h ro 0030?006fh pat[0?f] port arbitration table see bit description ro 0084?0087h ues uncorrectable error status 00000000h r/wc, ro 0088?008bh uem uncorrectable error mask 00000000h r/wo, ro 008c?008dh uev uncorrectable error severity 00000000h r/w, ro 0090?0093h ces correctable error status 00000000h r/wc 0094?0097h cem correctable error mask 00000000h r/wo 0098?009bh aecc advanced error capabilities and control 00000000h ro 00b0?00b3h res root error status 00000000h r/wc, ro 00b4?00b7h esid error source identification 00000000h ro 0100?0103h rctcl root complex topology capability list 1a010005h ro 0104?0107h esd element self description 00000502h r/wo, ro 0110?0113h uld upstream link descriptor 00000001h r/wo, ro 0114?011bh ulba upstream link base address 0000000000000000h r/wo 0120?0123h rp0d root port 0 descriptor 01xx0002h r/wo, ro 0128?012fh rp0ba root port 0 base address 00000000000e0000h ro
360 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 0130?0133h rp1d root port 1 descriptor 02xx0002h r/wo, ro 0138?013fh rp1ba root port 1 base address 00000000000e1000h ro 0140?0143h rp2d root port 2 descriptor 03xx0002h r/wo, ro 0148?014fh rp2ba root port 2 base address 00000000000e2000h ro 0150?0153h rp3d root port 3 descriptor 04xx0002h r/wo, ro 0158?015fh rp3ba root port 3 base address 00000000000e3000h ro 0160?0163h azd intel high definition audio descriptor 05xx0002h r/wo, ro 0168?016fh azba intel high definition audio base address 00000000000d8000h ro 01a0?01a3h ilcl internal link capability list 00010006h ro 01a4?01a7h lcap link capabilities 00012441h r/w, ro 01a8?01a9h lctl link control 0000h r/w 01aa?01abh lsts link status 0041h ro 01f0?01f3h vpcap private virtual channel resource capability 00000001h ro 01f4?01f7h vpctl private virtual channel resource control 00000000h r/w, ro 01fa?01fbh vpsts private virtual channel resource status 0000h ro 01fc?01ffh vpr private virtual channel routing 00000000h r/w 0200?0203h l3a level 3 backbone arbiter configuration 01100220h r/w 0208?020bh l2a level 2 backbone arbiter configuration 00000404h r/w 020c?020fh l1a level 1 backbone arbiter configuration 00201004h r/w 0210?0213h da downstream arbiter configuration 0000f711h r/w 0214?0217h unrl upstream non-posted request limits 100e0e8eh r/w 0218?021bh umr upstream minimum reserved 00010101h r/w 021c?021fh ql queue limits 00000000h r/w 0220?0223h gbc generic backbone configuration 00000000h r/w 0224?0227h rpc root port configuration 00000000h r/w 0228?022bh bac bandwidth allocation configuration 141200aah r/w 022c?022fh as arbiter status 00000000h r/wc 3000?3001h tctl tco control 00h r/w 3100?3103h d31ip device 31 interrupt pin 00042210h r/w, ro 3104?3107h d30ip device 30 interrupt pin 00002100h r/w, ro 3108?310bh d29ip device 29 interrupt pin 10004321h r/w 310c?310fh d28ip device 28 interrupt pin 00004321h r/w 3110?3113h d27ip device 27 interrupt pin 00000001h r/w 3140?3141h d31ir device 31 interrupt route 3210h r/w 3142?3143h d30ir device 30 interrupt route 3210h r/w 3144?3145h d29ir device 29 interrupt route 3210h r/w 3146?3147h d28ir device 28 interrupt route 3210h r/w 3148?3149h d27ir device 27 interrupt route 3210h r/w 31ff?31ffh oic other interrupt control 00h r/w table 12-1. chipset configuration register memory map (memory space) (sheet 2 of 3) offset mnemonic register name default type
intel ? 631xesb/632xesb i/o controller hub datasheet 361 chipset configuration registers 12.1.1 vch ? virtual channel capability header register offset address: 0000?0003h attribute: ro default value: 10010002h size: 32-bit 12.1.2 vcap1 ? virtual channel capability #1 register offset address: 0004?0007h attribute: ro default value: 00000801h size: 32-bit 12.1.3 vcap2 ? virtual channel capability #2 register offset address: 0008?000bh attribute: ro default value: 00000001h size: 32-bit 3400?3403h rc rtc configuration 00000000h r/w, r/wo 3404?3407h hptc high precision timer configuration 00000000h r/w 3410?3413h gcs general control and status 0000000xh r/w, r/wo 3414?3414h buc backed up control 0000000xb r/w 3418?341bh fd function disable see bit description r/w, ro 341c?341fh cg clock gating 00000000h r/w, ro table 12-1. chipset configuration register memory map (memory space) (sheet 3 of 3) offset mnemonic register name default type bit description 31:20 next capability offset (nco) ? ro. indicates the next item in the list. 19:16 capability version (cv) ? ro. indicates this is version 1 of the capability structure by the pci sig. 15:0 capability id (cid) ? ro. indicates this is the virtual channel capability item. bit description 31:12 reserved 11:10 port arbitration table entry size (pats) ? ro. indicates the size of the port arbitration table is 4 bits (to allow up to 8 ports). 9:8 reference clock (rc) ? ro. fixed at 100ns for this version of the pci express specification. 7 reserved 6:4 low priority extended vc count (lpevc) ? ro. indicates that there are no additional vcs of low priority with extended capabilities. 3 reserved 2:0 extended vc count (evc) ? ro. indicates that there is one additional vc (vc1) that exists with extended capabilities bit description 31:24 vc arbitration table offset (ato) ? ro. indicates that no table is present for vc arbitration since it is fixed. 23:8 reserved 7:0 vc arbitration capability (ac) ? ro. indicates that the vc arbitration is fixed in the root complex. vc1 is highest priority, vcp (the private vc) is next in priority, and vc0 is lowest priority.
362 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.4 pvc ? port virtual channel control register offset address: 000c?000dh attribute: r/w, ro default value: 0000h size: 16-bit 12.1.5 pvs ? port virtual channel status register offset address: 000e?000fh attribute: ro default value: 0000h size: 16-bit 12.1.6 v0cap ? virtual channel 0 resource capability register offset address: 0010?0013h attribute: ro default value: 00000001h size: 32-bit 12.1.7 v0ctl ? virtual channel 0 resource control register offset address: 0014?0017h attribute: r/w, ro default value: 800000ffh size: 32-bit bit description 15:04 reserved 3:1 vc arbitration select (as) ? ro. indicates which vc should be programmed in the vc arbitration table. the root complex takes no action on the setting of this field since there is no arbitration table. 0 load vc arbitration table (lat) ? ro. indicates that the table programmed should be loaded into the vc arbitration table. this bit is defined as read/write with always returning 0 on reads. bit description 15:01 reserved 0 vc arbitration table status (vas) ? ro. indicates the coherency status of the vc arbitration table when it is being updated. this field is always 0 in the root complex since there is no vc arbitration table. bit description 31:24 port arbitration table offset (at) ? ro. this vc implements no port arbitration table since the arbitration is fixed. 23 reserved 22:16 maximum time slots (mts) ? ro. this vc implements fixed arbitration, and therefore this field is not used. 15 reject snoop transactions (rts) ? ro. this vc must be able to take snoopable transactions. 14 advanced packet switching (aps) ? ro. this vc is capable of all transactions, not just advanced packet switching transactions. 13:8 reserved 7:0 port arbitration capability (pac) ? ro. indicates that this vc uses fixed port arbitration. bit description 31 virtual channel enable (en) ? ro. enables the vc when set. disables the vc when cleared. 30:27 reserved 26:24 virtual channel identifier (id) ? ro. indicates the id to use for this virtual channel. 23:20 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 363 chipset configuration registers 12.1.8 v0sts ? virtual channel 0 resource status register offset address: 001a?001bh attribute: ro default value: 0000h size: 16-bit 12.1.9 v1cap ? virtual channel 1 resource capability register offset address: 001c?001fh attribute: r/wo, ro default value: 30008010h size: 32-bit 19:17 port arbitration select (pas) ? rw. indicates which port table is being programmed. the root complex takes no action on this setting since the arbitration is fixed and there is no arbitration table. 16 load port arbitration table (lat) ? ro. the root complex does not implement an arbitration table for this virtual channel. 15:8 reserved 7:1 transaction class / virtual channel map (tvm) ? rw. indicates which transaction classes are mapped to this virtual channel. when a bit is set, this transaction class is mapped to the virtual channel. 0 reserved bit description bit description 15:02 reserved 1 vc negotiation pending (np) ? ro. when set, indicates the virtual channel is still being negotiated with ingress ports. 0 port arbitration tables status (ats) ? r0. there is no port arbitration table for this vc, so this bit is reserved at 0. bit description 31:24 port arbitration table offset (at) ? ro. indicates the location of the port arbitration table in the root complex. a value of 3h indicates the table is at offset 30h. 23 reserved 22:16 maximum time slots (mts) ? rwo. this value is updated by platform bios based upon the determination of the number of time slots available in the platform. 15 reject snoop transactions (rts) ? ro. all snoopable transactions on vc1 are rejected. this vc is for isochronous transfers only. 14 advanced packet switching (aps) ? ro. this vc is capable of all transactions, not just advanced packet switching transactions. 13:8 reserved 7:0 port arbitration capability (pac) ? ro. indicates the port arbitration capability is time-based wrr of 128 phases.
364 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.10 v1ctl ? virtual channel 1 resource control register offset address: 0020?0023h attribute: r/w, ro default value: 00000000h size: 32-bit 12.1.11 v1sts ? virtual channel 1 resource status register offset address: 0026?0027h attribute: ro default value: 0000h size: 16-bit 12.1.12 pat[0-f] ? port arbitration table register offset address: 0030?006fh attribute: ro default value: see description size: 64-byte this is a 64-byte register that contains the arbitration table to be loaded into the port arbitration table. every 4-bits contains an entry for one of the downstream pci express ports or a 0h to indicate idle. the ports are mapped as follows: ? port 0: value used is 1h. ? port 1: value used is 2h. ? port 2: value used is 3h ? port 3: value used is 4h this table is copied to an internal stru cture used during port arbitration when v1ctl.pas (offset 0020h, bits 19:17) is set to 4h, and v1ctl.lat (offset 0020h, bits 16) is set to 1. bit description 31 virtual channel enable (en) ? r/w. enables the vc when set. disables the vc when cleared. 30:27 reserved 26:24 virtual channel identifier (id) ? r/w. indicates the id to use for this virtual channel. 23:20 reserved 19:17 port arbitration select (pas) ? rw. indicates which port table is being programmed. the only permissible value of this field is 4h for the time-based wrr entries. 16 load port arbitration table (lat) ? ro/w. when set, the port arbitration table loaded based upon the pas field in this register. this bit always returns 0 when read. 15:8 reserved 7:1 transaction class / virtual channel map (tvm) ? rw. indicates which transaction classes are mapped to this virtual channel. when a bit is set, this transaction class is mapped to the virtual channel. 0 reserved bit description 15:02 reserved 1 vc negotiation pending (np) ? ro. when set, indicates the virtual channel is still being negotiated with ingress ports. 0 port arbitration tables status (ats) ? r0. indicates the coherency status of the port arbitration table. this bit is set during a table update, and cleared after the table has been updated.
intel ? 631xesb/632xesb i/o controller hub datasheet 365 chipset configuration registers 12.1.13 ues ? uncorrectable error status register offset address: 0084?0087h attribute: r/wc, ro default value: 00000000h size: 32-bit 12.1.14 uem ? uncorrectable error mask register offset address: 0088?008bh attribute: r/wo, ro default value: 00000000h size: 32-bit when set, the corresponding error in the ues register is masked, and the logged error will cause no action. when cleared, the corresponding error is enabled. bit description 31:21 reserved 20 unsupported request error status (ure) ? r/wc. indicates an unsupported request was received. 19 ecrc error status (ee) ? ro. ecrc is not supported. 18 malformed tlp status (mt) ? r/wc. indicates a malformed tlp was received. 17 receiver overflow status (ro) ? r/wc. indicates a receiver overflow occurred. 16 unexpected completion status (uc) ? r/wc. indicates an unexpected completion was received. 15 completer abort status (ca) ? r/wc. indicates a completer abort was received. 14 completion timeout status (ct) ? r/wc. indicates a completion timed out. 13 flow control protocol error status (fcpe) ? r/wc. indicates a flow control protocol error occurred. 12 poisoned tlp status (pt) ? r/wc. indicates a poisoned tlp was received. 11:5 reserved 4 data link protocol error status (dlpe) ? r/wc. indicates a data link protocol error occurred. 3:1 reserved 0 training error status (te) ? ro. not supported. bit description 31:21 reserved 20 unsupported request error mask (ure) ? r/wo. mask for uncorrectable errors. 19 ecrc error mask (ee) ? ro. ecrc is not supported. 18 malformed tlp mask (mt) ? r/wo. mask for malformed tlps. 17 receiver overflow mask (ro) ? r/wo. mask for receiver overflows. 16 unexpected completion mask (uc) ? r/wo. mask for unexpected completions. 15 completer abort mask (ca) ? r/wo. mask for completer abort. 14 completion timeout mask (ct) ? r/wo. mask for completion timeouts. 13 flow control protocol error mask (fcpe) ? r/wo. mask for flow control protocol errors. 12 poisoned tlp mask (pt) ? r/wo. mask for poisoned tlps. 11:5 reserved 4 data link protocol error mask (dlpe) ? r/wo. mask for data link protocol errors. 3:1 reserved 0 training error mask (te) ? ro. not supported.
366 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.15 uev ? uncorrectable error severity register offset address: 008c?008fh attribute: r/w, ro default value: 00000000h size: 32-bit 12.1.16 ces ? correctable error status register offset address: 0090?0093h attribute: r/wc default value: 00000000h size: 32-bit 12.1.17 cem ? correctable error mask register offset address: 0094?0097h attribute: r/wo default value: 00000000h size: 32-bit when set, the corresponding error in the ce s register is masked, and the logged error will cause no action. when cleared, the corresponding error is enabled. bit description 31:21 reserved 20 unsupported request error severity (ure) ? r/w. severity for unsupported request reception. 19 ecrc error severity (ee) ? ro. ecrc is not supported. 18 malformed tlp severity (mt) ? r/w. severity for malformed tlp reception. 17 receiver overflow severity (ro) ? r/w. severity for receiver overflow occurrences. 16 unexpected completion severity (uc) ? r/w. severity for unexpected completion reception. 15 completer abort severity (ca) ? r/w. severity for completer. 14 completion timeout severity (ct) ? r/w. severity for completion timeout. 13 flow control protocol error severity (fcpe) ? r/w. severity for flow control protocol errors. 12 poisoned tlp severity (pt) ? r/w. severity for poisoned tlp reception. 11:5 reserved 4 data link protocol error severity (dlpe) ? r/w. severity for data link protocol errors. 3:1 reserved 0 training error severity (te) ? r/w. severity for training errors. bit description 31:13 reserved 12 replay timer timeout status (rtt) ? r/wc. indicates the replay timer timed out. 11:9 reserved. 8 replay number rollover status (rnr) ? r/wc. indicates the replay number rolled over. 7 bad dllp status (bd) ? r/wc. indicates a bad dllp was received. 6 bad tlp status (bt) ? r/wc. indicates a bad tlp was received. 5:1 reserved. 0 receiver error status (re) ? r/wc. indicates a receiver error occurred. bit description 31:13 reserved 12 replay timer timeout mask (rtt) ? r/wo. mask for replay timer timeout. 11:9 reserved.
intel ? 631xesb/632xesb i/o controller hub datasheet 367 chipset configuration registers 12.1.18 aecc ? advanced error capabilities and control register offset address: 0098?009bh attribute: ro default value: 00000000h size: 32-bit 12.1.19 res ? root error status register offset address: 00b0?00b3h attribute: r/wc, ro default value: 00000000h size: 32-bit the intel ? 631xesb/632xesb i/o controller hub allows only one error to be captured. 12.1.20 esid ? error source identification register offset address: 00b4?00b7h attribute: ro default value: 00000000h size: 32-bit 8 replay number rollover mask (rnr) ? r/wo. mask for replay number rollover. 7 bad dllp mask (bd) ? r/wo. mask for bad dllp reception. 6 bad tlp mask (bt) ? r/wo. mask for bad tlp reception. 5:1 reserved. 0 receiver error mask (re) ? r/wo. mask for receiver errors. bit description bit description 31:9 reserved 8 ecrc check enable (ece) ? ro. ecrc is not supported. 7 ecrc check capable (ecc) ? ro. ecrc is not supported. 6 ecrc generation enable (ege) ? ro. ecrc is not supported. 5 ecrc generation capable (egc) ? ro. ecrc is not supported. 4:0 first error pointer (fep) ? ro. bit description 31:27 advanced error interrupt message number (aemn) ? ro. there is only one error interrupt allocated. 26:4 reserved. 3 multiple err_fatal/nonfatal received (menr) ? ro. this is not supported. 2 err_fatal/nonfatal received (enr) ? r/wc. set when either a fatal or a non-fatal error message is received or an internal fatal error is detected (all internal uncorrectable errors are fatal). 1 multiple err_cor received (mcr) ? ro. this is not supported. 0 err_cor received (cr) ? r/wc. set when a correctable error message is received or an internal correctable error is detected. bit description 31:16 err_fatal/nonfatal source identification (ensid) ? ro. loaded with the requester id indicated in the received err_fatal or err_nonfatal message when res.enr (offset 00b0h, bit 2) is first set, or the internal requestor id if an internally detected error. 15:0 err_cor source identification (csid) ? ro. loaded with the requester id indicated in the received err_cor message when res.cr (offset 00b0h, bit 0) is first set, or the internal requester id if an internally detected error.
368 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.21 rctcl ? root complex topology capabilities list register offset address: 0100?0103h attribute: ro default value: 1a010005h size: 32-bit 12.1.22 esd ? element self description register offset address: 0104?0107h attribute: r/wo, ro default value: 00000502h size: 32-bit 12.1.23 uld ? upstream link descriptor register offset address: 0110?0113h attribute: r/wo, ro default value: 00000001h size: 32-bit 12.1.24 ulba ? upstream link base address register offset address: 0114?011bh attribute: r/wo default value: 0000000000000000h size: 64-bit bit description 31:20 next capability (next) ? ro. indicates the next item in the list. 19:16 capability version (cv) ? ro. indicates the version of the capability structure. 15:0 capability id (cid) ? ro. indicates this is a pci express link capability section of an rcrb. bit description 31:24 port number (pn) ? ro. a value of 0 to indicate the egress port for the intel ? 631xesb/ 632xesb i/o controller hub. 23:16 component id (cid) ? r/wo. indicates the component id assigned to this element by software. this is written once by platform bios and is locked until a platform reset. 15:8 number of link entries (nle) ? ro. indicates that one link entry (corresponding to esi) and 4 root port entries (for the downstream port) is described by this rcrb. 7:4 reserved 3:0 element type (et) ? ro. indicates that the element type is a root complex internal link. bit description 31:24 target port number (pn) ? r/wo. this field is programmed by platform bios to match the port number of the mch rcrb that is attached to this rcrb. 23:16 target component id (tcid) ? r/wo. this field is programmed by platform bios to match the component id of the mch rcrb that is attached to this rcrb. 15:2 reserved 1 link type (lt) ? ro. indicates that the link points to the mch rcrb. 0 link valid (lv) ? ro. indicates that the link entry is valid. bit description 63:32 base address upper (bau) ? r/wo. this field is programmed by platform bios to match the upper 32-bits of base address of the mch rcrb that is attached to this rcrb. 31:0 base address lower (bal) ? r/wo. this field is programmed by platform bios to match the lower 32-bits of base address of the mch rcrb that is attached to this rcrb.
intel ? 631xesb/632xesb i/o controller hub datasheet 369 chipset configuration registers 12.1.25 rp0d ? root port 0 descriptor register offset address: 0120?0123h attribute: r/wo, ro default value: 01xx0002h size: 32-bit 12.1.26 rp0ba ? root port 0 base address register offset address: 0128?012fh attribute: ro default value: 00000000000e0000h size: 64-bit 12.1.27 rp1d ? root port 1 descriptor register offset address: 0130?0133h attribute: r/wo, ro default value: 02xx0002h size: 32-bit bit description 31:24 target port number (pn) ? ro. indicates the target port number is 1h (root port #0). 23:16 target component id (tcid) ? r/wo. this field returns the value of the esd.cid (offset 0104h, bits 23:16) field programmed by platform bios, since the root port is in the same component as the rcrb. 15:2 reserved 1 link type (lt) ? ro. indicates that the link points to a root port. 0 link valid (lv) ? ro. when fd.pe1d (offset 3418h, bit 16) is set, this link is not valid (returns 0). when fd.pe1d is cleared, this link is valid (returns 1). bit description 63:32 reserved 31:28 reserved 27:20 bus number (bn) ? ro. indicates the root port is on bus #0. 19:15 device number (dn) ? ro. indicates the root port is on device #28. 14:12 function number (fn) ? ro. indicates the root port is on function #0. 11:0 reserved bit description 31:24 target port number (pn) ? ro. indicates the target port number is 2h (root port #1). 23:16 target component id (tcid) ? r/wo. this field returns the value of the esd.cid (offset 0104h, bits 23:16) field programmed by platform bios, since the root port is in the same component as the rcrb. 15:2 reserved 1 link type (lt) ? ro. indicates that the link points to a root port. 0 link valid (lv) ? ro. when rpc.pc (offset 0224h, bits 1:0) is ?01?, ?10?, or ?11?, or fd.pe2d (offset 3418h, bit 17) is set, the link for this root port is not valid (return 0). when rpc.pc is ?00? and fd.pe2d is cleared, the link for this root port is valid (return 1).
370 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.28 rp1ba ? root port 1 base address register offset address: 0138?013fh attribute: ro default value: 00000000000e1000h size: 64-bit 12.1.29 rp2d ? root port 2 descriptor register offset address: 0140?0143h attribute: r/wo, ro default value: 03xx0002h size: 32-bit 12.1.30 rp2ba ? root port 2 base address register offset address: 0148?014fh attribute: ro default value: 00000000000e2000h size: 64-bit bit description 63:32 reserved 31:28 reserved 27:20 bus number (bn) ? ro. indicates the root port is on bus #0. 19:15 device number (dn) ? ro. indicates the root port is on device #28. 14:12 function number (fn) ? ro. indicates the root port is on function #1. 11:0 reserved bit description 31:24 target port number (pn) ? ro. indicates the target port number is 3h (root port #2). 23:16 target component id (tcid) ? r/wo. this field returns the value of the esd.cid (offset 0104h, bits 23:16) field programmed by platform bios, since the root port is in the same component as the rcrb. 15:2 reserved 1 link type (lt) ? ro. indicates that the link points to a root port. 0 link valid (lv) ? ro. when rpc.pc (offset 0224h, bits 1:0) is ?11?, or fd.pe3d (offset 3418h, bit 18) is set, the link for this root port is not valid (return 0). when rpc.pc is ?00?, ?01?, or ?10?, and fd.pe3d is cleared, the link for this root port is valid (return 1). bit description 63:32 reserved 31:28 reserved 27:20 bus number (bn) ? ro. indicates the root port is on bus #0. 19:15 device number (dn) ? ro. indicates the root port is on device #28. 14:12 function number (fn) ? ro. indicates the root port is on function #2. 11:0 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 371 chipset configuration registers 12.1.31 rp3d ? root port 3 descriptor register offset address: 0150?0153h attribute: r/wo, ro default value: 04xx0002h size: 32-bit 12.1.32 rp3ba ? root port 3 base address register offset address: 0158?015fh attribute: ro default value: 00000000000e3000h size: 64-bit 12.1.33 azd ? high definition audio descriptor register offset address: 0160?0163h attribute: r/wo, ro default value: 05xx0002h size: 32-bit bit description 31:24 target port number (pn) ? ro. indicates the target port number is 4h (root port #3). 23:16 target component id (tcid) ? r/wo. this field returns the value of the esd.cid (offset 0104h, bits 23:16) field programmed by platform bios, since the root port is in the same component as the rcrb. 15:2 reserved 1 link type (lt) ? ro. indicates that the link points to a root port. 0 link valid (lv) ? ro. when rpc.pc (offset 0224h, bits 1:0) is ?10? or ?11?, or fd.pe4d (offset 3418h, bit 19) is set, the link for this root port is not valid (return 0). when rpc.pc is ?00? or ?01? and fd.pe4d is cleared, the link for this root port is valid (return 1). bit description 63:32 reserved 31:28 reserved 27:20 bus number (bn) ? ro. indicates the root port is on bus #0. 19:15 device number (dn) ? ro. indicates the root port is on device #28. 14:12 function number (fn) ? ro. indicates the root port is on function #3. 11:0 reserved bit description 31:24 target port number (pn) ? ro. indicates the target port number is 5h (intel high definition audio). 23:16 target component id (tcid) ? r/wo. this field returns the value of the esd.cid (offset 0104h, bits 23:16) field programmed by platform bios, since the root port is in the same component as the rcrb. 15:2 reserved 1 link type (lt) ? ro. indicates that the link points to a root port. 0 link valid (lv) ? ro. when fd.zd (offset 3418h, bit 4) is set, the link to intel high definition audio is not valid (return 0). when fd.zd is cleared, the link to intel high definition audio is valid (return 1).
372 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.34 azba ? high definition audio base address register offset address: 0168?016fh attribute: ro default value: 00000000000d8000h size: 64-bit 12.1.35 ilcl ? internal link capabilities list register offset address: 01a0?01a3h attribute: ro default value: 00010006h size: 32-bit 12.1.36 lcap ? link capabilities register offset address: 01a4?01a7h attribute: r/w, ro default value: 00012441h size: 32-bit bit description 63:32 reserved 31:28 reserved 27:20 bus number (bn) ? ro. indicates the root port is on bus #0. 19:15 device number (dn) ? ro. indicates the root port is on device #27. 14:12 function number (fn) ? ro. indicates the root port is on function #0. 11:0 reserved bit description 31:20 next capability offset (next) ? ro. indicates this is the last item in the list. 19:16 capability version (cv) ? ro. indicates the version of the capability structure. 15:0 capability id (cid) ? ro. indicates this is capability for esi. bit description 31:18 reserved 17:15 l1 exit latency (el1) ? ro. indicates that the exit latency is 2 s to less than 4 s. 14:12 l0s exit latency (el0) ? r/w. this field is updateable by bios. it defaults to 128 ns to less than 256 ns, assuming a common-clock configuration between mch and intel ? 631xesb/ 632xesb i/o controller hub. if a unique clock value is used, it is recommended that bios update this field to 100b (512 ns to less than 1 s). 11:10 active state link pm support (apms) ? r/o. indicates what level of active state link power management is supported on the esi port. bitsdefinition 00 neither l0s nor l1 are supported 01 l0s entry supported 10 reserved, l1is not supported on esi 11 reserved, l1is not supported on esi 9:4 maximum link width (mlw) ? ro. indicates the maximum link width is 4 ports. 3:0 maximum link speed (mls) ? ro. indicates the link speed is 2.5 gb/s.
intel ? 631xesb/632xesb i/o controller hub datasheet 373 chipset configuration registers 12.1.37 lctl ? link control register offset address: 01a8?01a9h attribute: r/w default value: 0000h size: 16-bit 12.1.38 lsts ? link status register offset address: 01aa?01abh attribute: ro default value: 0041h size: 16-bit 12.1.39 vpcap ? private virtual channel resource capability register offset address: 01f0?01f3h attribute: ro default value: 00000001h size: 32-bit bit description 15:8 reserved 7 extended synch (es) ? r/w. when set, forces extended transmission of fts ordered sets when exiting l0s prior to entering l0 and extra ts1 sequences at exit from l1 prior to entering l0. 6:2 reserved 1:0 active state link pm control (apmc) ? r/w. indicates whether esi should enter l0s or l1 or both. 00 = disabled 01 = l0s entry supported 10 = reserved 11 = l0s and l1 entry supported. bit description 15:10 reserved 9:4 negotiated link width (nlw) ? ro. minimum negotiated link width is a x4 port. 3:0 link speed (ls) ? ro. link is 2.5 gb/s. bit description 31:24 port arbitration table offset (at) ? ro. this vc implements no port arbitration table since the arbitration is fixed. 23 reserved 22:16 maximum time slots (mts) ? ro. this vc implements fixed arbitration, and therefore this field is not used. 15 reject snoop transactions (rts) ? ro. this vc must be able to take snoopable transactions. 14 advanced packet switching (aps) ? ro. this vc is capable of all transactions, not just advanced packet switching transactions. 13:8 reserved 7:0 port arbitration capability (pac) ? ro. indicates that this vc uses fixed port arbitration.
374 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.40 vpctl ? private virtual ch annel resource control register offset address: 01f4?01f7h attribute: r/w, ro default value: 00000000h size: 32-bit 12.1.41 vpsts ? private virtual channel resource status register offset address: 01fa?01fbh attribute: ro default value: 0000h size: 16-bit 12.1.42 vpr ? private virtual channel routing register offset address: 01fc?01ffh attribute: r/w default value: 00000000h size: 32-bit bit description 31 virtual channel enable (en) ? r/w. enables the vc when set. disables the vc when cleared. 30:27 reserved 26:24 virtual channel identifier (id) ? r/w. indicates the id to use for this virtual channel. 19:17 port arbitration select (pas) ? r/w. indicates which port table is being programmed. the root complex takes no action on this setting since the arbitration is fixed and there is no arbitration table. 16 load port arbitration table (lat) ? ro. the root complex does not implement an arbitration table for this virtual channel. 15:8 reserved 7:0 transaction class / virtual channel map (tvm) ? ro. indicates which transaction classes are mapped to this virtual channel. when a bit is set, this transaction class is mapped to the virtual channel. bit description 15:02 reserved 1 vc negotiation pending (np) ? ro. when set, indicates the virtual channel is still being negotiated with ingress ports. 0 port arbitration tables status (ats) ? ro. there is no port arbitration table for this vc, so this bit is reserved at 0. bit description 15:11 reserved 10:8 vcp traffic class (vptc) ? r/w. when any of the below interfaces are enabled to use vcp, they must use this traffic class. when the interface is not enabled to use vcp, they must use tc0 as their traffic class. the one exception to this is intel high definition audio, which may be enabled for vc1. in this case, the tc assigned to vc1 is used. 7:4 reserved 3 high definition audio vcp enable (zpe) ? r/w. 0 = the intel high definition audio audio and modem controllers will use vc0, unless os software enables intel high definition audio to use vc1, in which case vc1 will be used. 1 = the intel high definition audio audio and modem controllers will use vcp as its virtual channel, unless os software enables intel high definition audio to use vc1, in which case vc1 will be used.
intel ? 631xesb/632xesb i/o controller hub datasheet 375 chipset configuration registers 12.1.43 l3a ? level 3 backbone arbiter configuration register offset address: 0200?0203h attribute: r/w default value: 01100220h size: 32-bit the bits in this register are 1?s based; that is, a value of 1h means a count of 1, a count of 10h means a count of 16, and so on. bios should not program a value of 00h into these registers, as that will result in no grants for the particular type. 12.1.44 l2a ? level 2 backbone arbiter configuration register offset address: 0208?020bh attribute: r/w default value: 00000404h size: 32-bit the bits in this register are 1?s based; that is, a value of 1h means a count of 1, a count of 10h means a count of 16, and so on. bios should not program a value of 00h into these registers, as that will result in no grants for the particular type. 2 ac?97 vcp enable (ape) ? r/w. 0 = the ac?97 audio and modem controllers will use vc0. 1 = the ac?97 audio and modem controllers will use vcp as its virtual channel. 1 ehci vcp enable (epe) ? r/w. 0 = the ehci controller will use vc0. 1 = the ehci controller will use vcp as its virtual channel. 0 uhci vcp enable (epe) ? r/w. 0 = the uhci controllers will use vc0. 1 = the uhci controllers will use vcp as their virtual channel. bit description bit description 31 grant count disable (gcd) ? r/w. 0 = grant count enabled. 1 = indicates that the grant counter for this arbiter level is disabled, and all grant counts for this level are treated as unlimited. 30 reserved 29:24 peer grant count (pgc) ? r/w. indicates the grant count to load on peer requests into the level 3 arbiter. 23:22 reserved 21:16 private virtual channel grant count (vpgc) ? r/w. indicates the grant count to load on vcp requests into the level 3 arbiter. 15:14 reserved 13:8 virtual channel 1 grant count (v1gc) ? r/w. indicates the grant count to load on vc1 requests into the level 3 arbiter. 7:6 reserved 5:0 virtual channel 0 grant count (v0gc) ? r/w. indicates the grant count to load on vc0 requests into the level 3 arbiter.
376 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.45 l1a ? level 1 backbone arbiter configuration register offset address: 020c?020fh attribute: r/w default value: 00201004h size: 32-bit the bits in this register are 1?s based; that is, a value of 1h means a count of 1, a count of 10h means a count of 16, and so on. bios should not program a value of 00h into these registers, as that will result in no grants for the particular type. 12.1.46 da ? downstream arbiter configuration register offset address: 0210?0213h attribute: r/w default value: 0000f711h size: 32-bit the bits in this register are 1?s based; that is, a value of 1h means a count of 1, a count of 10h means a count of 16, and so on. bios should not program a value of 00h into these registers, as that will result in no grants for the particular type. bit description 31 grant count disable (gcd) ? r/w. 0 = grant count enabled. 1 = indicates that the grant counter for this arbite r level is disabled, and all grant counts for this level are treated as unlimited. 30:14 reserved 13:8 posted grant count (pgc) ? r/w. indicates the grant count to load on peer requests into the level 2 arbiter. 7:6 reserved 5:0 non-posted grant count (ngc) ? r/w. indicates the grant count to load on non-posted requests into the level 2 arbiter. bit description 31 grant count disable (gcd) ? r/w. 0 = grant count enabled. 1 = indicates that the grant counter for this arbite r level is disabled, and all grant counts for this level are treated as unlimited. 30:22 reserved 21:16 high bandwidth grant count (hgc) ? r/w. indicates the grant count to load on high bandwidth requests into the level 1 arbiter. 15:14 reserved 13:8 medium bandwidth grant count (mgc) ? r/w. indicates the grant count to load on medium bandwidth requests into the level 1 arbiter. 7:6 reserved 5:0 low bandwidth grant count (mgc) ? r/w. indicates the grant count to load on low bandwidth requests into the level 1 arbiter.
intel ? 631xesb/632xesb i/o controller hub datasheet 377 chipset configuration registers 12.1.47 unrl ? upstream non-posted request limits register offset address: 0214?0217h attribute: r/w default value: 100e0e8eh size: 32-bit the bits in this register are 1?s based; that is, a value of 1h means a count of 1, a count of 10h means a count of 16, and so on. bios should not program a value of 00h into these registers, as that will result in no grants for the particular type. bit description 31 grant count disable (gcd) ? r/w. 0 = grant count enabled. 1 = indicates that the grant counter for this arbiter level is disabled, and all grant counts for this level are treated as unlimited. 30:16 reserved 15:12 vc1 completion grant counter (v1gc) ? r/w. specifies the default value for downstream vc1 completion grant count. 11:8 private vc completion grant count (vpgc) ? r/w. specifies the default value for downstream vcp completion grant count. 7:4 vc0 completion / peer posted grant count (v0pgc) ? r/w. specifies the default value for vc0 completions and peer posted requests. 3:0 missing completion grant count (mcgc) ? r/w. specifies the default value for missing completion grant count. bit description 31:29 reserved 28:24 total non-posted upstream request limit (t) ? r/w. request limit for the total count of non-posted upstream requests. this value must be programmed to be greater than the sum of the minimum reserved fields. this register has no meaning if the v0d, v1d, and vpd bits are set. 23 vcp upstream request limit disable (vpd) ? r/w. 0 = enabled. 1 = the vp bit in this register and umr.vp (offset 0218h, bits 20:16) will be disregarded, and there will be no limit to the number of outstanding vc0 upstream non-posted requests. completion timeouts and unexpected completions will not be generated. 22 vcp non-posted data required (vpdr) ? r/w. 0 = non-posted data free is not required for this vc. 1 = indicates that a maximum data length (128 bytes) is required in the upstream data buffer for the arbiter to grant an upstream non-posted request for this vc. 21 reserved 20:16 private virtual channel non-posted upstream request limit (vp) ? r/w. request limit for vcp non-posted upstream requests. this field ha s no meaning if vpd in this register is set. 15 vc1 upstream request limit disable (v1d) ? r/w. 0 = enabled. 1 = the v1 bit in this register and umr.v1 (offset 0218h, bits 12:8) will be disregarded, and there will be no limit to the number of outstanding vc0 upstream non-posted requests. completion timeouts and unexpected completions will not be generated. 14 vc1 non-posted data required (v1dr) ? r/w. 0 = non-posted data free is not required for this vc. 1 = indicates that a maximum data length (128 bytes) is required in the upstream data buffer for the arbiter to grant an upstream non-posted request for this vc. 13 reserved 12:8 virtual channel 1 non-posted upstream request limit (v1) ? r/w. request limit for vc1 upstream non-posted requests. this field has no meaning if v1d in this register is set.
378 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.48 umr ? upstream minimum reserved register offset address: 0218?021bh attribute: r/w default value: 00010101h size: 32-bit the bits in this register are 1?s based; that is, a value of 1h means a count of 1, a count of 10h means a count of 16, and so on. bios should not program a value of 00h into these registers, as that will result in no grants for the particular type. 12.1.49 ql ? queue limits register offset address: 021c?021fh attribute: r/w default value: 00000000h size: 32-bit 7 vc0 upstream request limit disable (v0d) ? r/w. 0 = enabled. 1 = the v0 bit in this register and umr.v0 (offse t 0218h, bits 4:0) will be disregarded, and there will be no limit to the number of outstanding vc0 upstream non-posted requests. completion timeouts and unexpected completions will not be generated. 6 vc0 non-posted data required (v0dr) ? r/w. 0 = the upstream arbiter will not look at these conditions when granting a non-posted request for this vc. 1 = indicates that a maximum data length (128 bytes) is required in the upstream data buffer and at least 1 non-posted data credit for this vc is required for the upstream arbiter to grant an non-posted request for this vc. 5 reserved 4:0 virtual channel 0 non-posted upstream request limit (v0) ? r/w. request limit for vc0 upstream non-posted requests. this field has no meaning if v0d in this register is set. bit description bit description 31:21 reserved 20:16 private virtual channel minimum reserved (vp) ? r/w. indicates the minimum number of slots in the sideways queue reserved for vcp non-posted upstream requests. this value must be less than unrl.vp (offset 0214h, bits 20;16), and th e sum of the vp, v1 and v0 fields in this register must be less than unrl.t (offset 0214h, bits 28;24). this field has no meaning if unrl.vpd (offset 0214h, bit 23) is set. 15:13 reserved 12:8 virtual channel 1 minimum reserved (v1) ? r/w. indicates the minimum number of slots in the sideways queue reserved for vc1 non-posted upstream requests. this value must be less than unrl.v1 (offset 0214h, bits 12;8), and the sum of the vp, v1 and v0 fields in this register must be less than unrl.t (offset 0214h, bits 28; 24). this field has no meaning if unrl.v1d (offset 0214h, bit 15) is set. 7:5 reserved 4:0 virtual channel 0 minimum reserved (v0) ? r/w. indicates the minimum number of slots in the sideways queue reserved for vc0 non-posted upstream requests. this value must be less than unrl.v0 (offset 0214h, bits 4;0), and the sum of the vp, v1 and v0 fields in this register must be less than unrl.t (offset 0214h, bits 28; 24). this field has no meaning if unrl.v0d (offset 0214h, bit 7) is set. bit description 31:4 reserved 3 upstream command queue size limit enable (ucqle) ? r/w. indicates the value of the ucql field is valid. 2:0 upstream command queue size limit (ucql) ? r/w. 0?s based value which limits the number of upstream requests in the command queue. this is only valid if ucqle is set in this register.
intel ? 631xesb/632xesb i/o controller hub datasheet 379 chipset configuration registers 12.1.50 gbc ? generic backbone configuration register offset address: 0220?0223h attribute: r/w default value: 00000000h size: 32-bit bit description 31 reserved 30:28 upstream arbiter back-2-back delay (uad) ? r/w. indicates the number of backbone clocks injected into the upstream arbiter before the next evaluation phase. a value of 0 means no delay is added. 27 reserved 26:24 downstream arbiter back-2-back delay (dad) ? r/w. indicates the number of backbone clocks injected into the downstream arbiter before the next evaluation phase. a value of 0 means no delay is added. 23 transaction layer packet fast transmit mode (tlpf) ? r/w. 0 = disabled. 1 = the backbone will transmit the packet header in the upstream command queue without waiting for the corresponding data to be available. 22:20 reserved 19:16 flow control update policy (fcp) ? r/w. indicates how long a flow control update should wait for transmit in the presence of tlps to transmit . when the link is idle, a flow control update will occur immediately when it becomes available. additionally, if a 2nd update becomes available, the flow control update will occur next, regardless of the clock count. encodings are: 101 = wait 128-160 link clocks before sending the update 100 = wait 96-128 link clocks before sending the update 011 = wait 64-96 link clocks before sending the update 010 = wait 32-64 link clocks before sending the update. 000 = never wait ? send flow control update immediately all values other than the ones specified will alias to ?000?. 15:8 reserved 7 completer timeout disable (ctd) ? r/w. 0 = enabled. 1 = disables the timeout mechanism for transactions. the backbone downstream will not timeout any completion nor generate any completer abort messages. 6 credit allocated update mode (cam) ? r/w. 0 = the credit update will not occur until the last data phase of the transaction. 1 = the credit update to the backbone upstream arbiter will occur on the clock the cycle is accepted on the backbone, ahead of the data transfer. 5 virtual channel 1 optimized (v1o) ? r/w. 0 = disabled. 1 = one slot is reserved for vc1 traffic when vc1 is enabled. vc0 and vcp traffic will only be granted if there are 2 free entries in the upstream queue.
380 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.51 rpc ? root port configuration register offset address: 0224?0227h attribute: r/w default value: 00000000h size: 32-bit 12.1.52 bac ? bandwidth allocation configuration register offset address: 0228?022bh attribute: r/w default value: 141200aah size: 32-bit the devices listed below will use as their bandwidth the value located in these register fields. the encoding is as follows: 4 reserved 3:2 lock non-snoop request enable (nrel) ? r/w. indicates the policy of the upstream arbiter in the presence of non-snoop requests when the cpu is locked and the arbiter is considered disabled. encodings are: 11 = allow all non-snoop requests to continue upstream 10 = allow vc1 and vcp non-snoop requests to continue upstream 01 = allow vc1 non-snoop requests to continue upstream 00 = do not allow any non-snoop requests to continue upstream (default) 1:0 c3 non-snoop request enable (nre3) ? r/w. indicates the policy of the upstream arbiter in the presence of non-snoop requests when the cpu is in a c3 state and the arbiter is considered disabled by the operating system. encodings are: 11 = allow all non-snoop requests to continue upstream 10 = allow vc1 and vcp non-snoop requests to continue upstream 01 = allow vc1 non-snoop requests to continue upstream 00 = do not allow any non-snoop requests to continue upstream (default) bit description bit description 31:8 reserved 7 high priority port enable (hpe) ? r/w. 0 = the high priority path is not enabled. 1 = the port selected by the hpp field in this register is enabled for high priority. it will be arbitrated just below any vcp devices, and above all other vc0 (including integrated vc0) devices. 6 reserved 5:4 high priority port (hpp) ? r/w. this controls which port is enabled for high priority when the hpe bit in this register is set. 11 = port 3 10 = port 2 01 = port 1 00 = port 0 3:2 reserved 1:0 port configuration (pc) ? r/w. this controls how the pci bridges are organized in various modes of operation. for the following mappings, if a port is not shown, it is considered a x1 port with no connection. 11 = 1 x4, port 0 (x4) 10 = reserved 01 = reserved 00 = 4 x1s, port 0 (x1), port 1 (x1), port 2 (x1), port 3 (x1) these bits live in the resume well and are only reset by rsmrst#.
intel ? 631xesb/632xesb i/o controller hub datasheet 381 chipset configuration registers 00 = low bandwidth (less than 50 mb/s) 01 = medium bandwidth (50 mb/s to 200 mb/s) 10 = high bandwidth (>200 mb/s) 11 = reserved 12.1.53 as ? arbiter status register offset address: 022c?022fh attribute: r/wc default value: 00000000h size: 32-bit 12.1.54 trsr ? trap status register offset address: 1e00?1e03h attribute: r/wc, ro default value: 00000000h size: 32-bit bit description 31:30 ac97 bandwidth (a97b) ? r/w. default is the ac?97 controller is of low bandwidth. 29:28 pata bandwidth (pab) ? r/w. default is the pata controller is of medium bandwidth. 27:26 pci bridge bandwidth (p2pb) ? r/w. default is the pci bridge is of medium bandwidth. 25:24 usb 1.1 bandwidth (u1b) ? r/w. default is the usb 1.1 (uhci) controllers are of low bandwidth. 23:22 legacy device bandwidth (ldb) ? r/w. default is the legacy devices are of low bandwidth. 21:20 usb2 bandwidth (u2b) ? r/w. default is the usb2 (ehci) controller is of medium bandwidth. 19:18 high definition audio bandwidth (azb) ? r/w. default is the intel high definition audio controller is of low bandwidth. 17:16 sata bandwidth (sab) ? r/w. default is the sata controller is of high bandwidth. 15:8 reserved for future root ports. 7:6 root port 3 bandwidth (rp4b) ? r/w. default is south port #3 is of high bandwidth. 5:4 root port 2 bandwidth (rp3b) ? r/w. default is south port #2 is of high bandwidth. 3:2 root port 1 bandwidth (rp2b) ? r/w. default is south port #1 is of high bandwidth. 1:0 root port 0 bandwidth (rp1b) ? r/w. default is south port #0 is of high bandwidth. bit description 31:1 reserved 0 vc1 grant order queue overflow (v1g0) ? r/wc. 0 = the high priority path is not enabled. 1 = indicates that the vc1 twrr grant order queue has overflowed and vc1 isochronous traffic bandwidth will not be guaranteed. bits description 31:4 reserved. 3:0 cycle trap smi# status (ctss) ? r/wc. these bits are set by hardware when the corresponding cycle trap register is enabled and a matching cycle is received (and trapped). these bits are or?d together to create a single status bit in the power management register space. note that the smi# and trapping must be enabled in order to set these bits. these bits are set before the completion is generated for the trapped cycle, thereby guaranteeing that the processor can enter the smi# handler when the instruction completes. each status bit is cleared by writing a 1 to the corresponding bit location in this register.
382 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.55 trcr ? trapped cycle register offset address: 1e10?1e17h attribute: ro default value: 0000000000000000h size: 64-bit this register saves information about the i/o cycle that was trapped and generated the smi# for software to read. 12.1.56 twdr ? trapped write data register offset address: 1e18?1e1fh attribute: ro default value: 0000000000000000h size: 64-bit this register saves the data from i/o write cycles that are trapped for software to read. 12.1.57 iotrn ? i/o trap register (0-3) offset address: 1e80?1e87h register 0 attribute: r/w, ro 1e88?1e8fh register 1 1e90?1e97h register 2 1e98?1e9fh register 3 default value: 0000000000000000h size: 32-bit these registers are used to specify the set of i/o cycles to be trapped and to enable this functionality. bits description 63:25 reserved. 24 read/write# (rwi) ? ro. 0 = trapped cycle was a write cycle. 1 = trapped cycle was a read cycle. 23:20 reserved. 19:16 active-high byte enables (ahbe) ? ro. this is the dword-aligned byte enables associated with the trapped cycle. a 1 in any bit location indicates that the corresponding byte is enabled in the cycle. 15:2 trapped i/o address (tioa) ? ro. this is the dword-aligned address of the trapped cycle. 1:0 reserved. bits description 63:32 reserved. 31:0 trapped i/o data (tiod) ? ro. dword of i/o write data. this field is undefined after trapping a read cycle. bits description 63:50 reserved. 49 read/write mask (rwm) ? r/w. 0 = the cycle must match the type specified in bit 48. 1 = trapping logic will operate on both read and write cycles. 48 read/write# (rwio) ? r/w. 0 = write 1 = read note: the value in this field does not matter if bit 49 is set. 47:40 reserved. 39:36 byte enable mask (bem) ? r/w. a 1 in any bit position in dicates that any value in the corresponding byte enable bit in a received cycle will be treated as a match. the corresponding bit in the byte enables field, below, is ignored. 35:32 byte enables (tbe) ? r/w. active-high dword-aligned byte enables. 31:24 reserved.
intel ? 631xesb/632xesb i/o controller hub datasheet 383 chipset configuration registers 12.1.58 tctl ? tco configuration register offset address: 3000?3001h attribute: r/w default value: 00h size: 8-bit 23:18 address[7:2] mask (adma) ? r/w. a 1 in any bit position indicates that any value in the corresponding address bit in a received cycle will be treated as a match. the corresponding bit in the address field, below, is ignored. the mask is only provided for the lower 6 bits of the dword address, allowing for traps on address ranges up to 256 bytes in size. 17:16 reserved. 15:2 i/o address[15:2] (ioad) ? r/w. dword-aligned address 1 reserved. 0 trap and smi# enable (trse) ? r/w. 0 = trapping and smi# logic disabled. 1 = the trapping logic specified in this register is enabled. bits description bit description 7 tco irq enable (ie) ? r/w. 0 = tco irq is disabled. 1 = tco irq is enabled, as selected by the tco_irq_sel field. 6:3 reserved 2:0 tco irq select (is) ? r/w. specifies on which irq the tco will internally appear. if not using the apic, the tco interrupt must be routed to irq9-11, and that interrupt is not sharable with the serirq stream, but is shareable with other pci interrupts. if using the apic, the tco interrupt can also be mapped to irq20-23, and can be shared with other interrupt. 000 = irq 9 001 = irq 10 010 = irq 11 011 = reserved 100 = irq 20 (only if apic enabled) 101 = irq 21 (only if apic enabled) 110 = irq 22 (only if apic enabled) 111 = irq 23 (only if apic enabled) when setting the these bits, the ie bit should be cleared to prevent glitching. when the interrupt is mapped to apic interrupts 9, 10 or 11, the apic should be programmed for active-high reception. when the interrupt is ma pped to apic interrupts 20 through 23, the apic should be programmed for active-low reception.
384 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.59 d31ip ? device 31 interrupt pin register offset address: 3100?3103h attribute: r/w, ro default value: 00042210h size: 32-bit 12.1.60 d30ip ? device 30 interrupt pin register offset address: 3104?3107h attribute: r/w, ro default value: 00002100h size: 32-bit bit description 31:16 reserved 15:12 sm bus pin (smip) ? r/w. indicates which pin the smbus controller drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 11:8 sata pin (sip) ? r/w. indicates which pin the sata controller drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 7:4 pata pin (smip) ? r/w. indicates which pin the pata controller drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 3:0 pci bridge pin (pip) ? ro. currently, the pci bridge does not generate an interrupt, so this field is read-only and 0. bit description 31:16 reserved 15:12 ac ?97 modem pin (amip) ? r/w. indicates which pin the ac ?97 modem controller drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 11:8 ac ?97 audio pin (aaip) ? r/w. indicates which pin the ac ?97 audio controller drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 7:4 reserved 3:0 lpc bridge pin (lip) ? ro. currently, the lpc bridge does not generate an interrupt, so this field is read-only and 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 385 chipset configuration registers 12.1.61 d29ip ? device 29 interrupt pin register offset address: 3108?310bh attribute: r/w default value: 10004321h size: 32-bit bit description 31:28 ehci pin (eip) ? r/w. indicates which pin the ehci controller drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 27:16 reserved 15:12 uhci #3 pin (u3p) ? r/w. indicates which pin the uhci controller #3 (ports 6 and 7) drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 11:8 uhci #2 pin (u2p) ? r/w. indicates which pin the uhci controller #2 (ports 4 and 5) drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 7:4 uhci #1 pin (u1p) ? r/w. indicates which pin the uhci controller #1 (ports 2 and 3) drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 3:0 uhci #0 pin (u0p) ? r/w. indicates which pin the uhci controller #0 (ports 0 and 1) drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved
386 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.62 d28ip ? device 28 interrupt pin register offset address: 310c?310fh attribute: r/w default value: 00004321h size: 32-bit 12.1.63 d27ip ? device 27 interrupt pin register offset address: 3110?3113h attribute: r/w default value: 00000001h size: 32-bit bit description 31:16 reserved 15:12 pci express #4 pin (p4ip) ? r/w. indicates which pin the pci express port #3 drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 11:8 pci express #3 pin (p3ip) ? r/w. indicates which pin the pci express port #2 drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 7:4 pci express #2 pin (p2ip) ? r/w. indicates which pin the pci express port #1 drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved 3:0 pci express #1 pin (p1ip) ? r/w. indicates which pin the pci express port #0 drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved bit description 31:4 reserved 3:0 high definition audio pin (zip) ? r/w. indicates which pin the intel high definition audio controller drives as its interrupt. 0h = no interrupt 1h = inta# 2h = intb# 3h = intc# 4h = intd# 5h-7h = reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 387 chipset configuration registers 12.1.64 d31ir ? device 31 interrupt route register offset address: 3140?3141h attribute: r/w default value: 3210h size: 16-bit bit description 15 reserved 14:12 interrupt d pin route (idr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intd# pin reported for device 31 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 11 reserved 10:8 interrupt c pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intc# pin reported for device 31 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 7 reserved 6:4 interrupt b pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intb# pin reported for device 31 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 3 reserved 2:0 interrupt a pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the inta# pin reported for device 31 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh#
388 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.65 d30ir ? device 30 interrupt route register offset address: 3142?3143h attribute: r/w default value: 3210h size: 16-bit bit description 15 reserved 14:12 interrupt d pin route (idr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intd# pin reported for device 30 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 11 reserved 10:8 interrupt c pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intc# pin reported for device 30 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 7 reserved 6:4 interrupt b pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intb# pin reported for device 30 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 3 reserved 2:0 interrupt a pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the inta# pin reported for device 30 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh#
intel ? 631xesb/632xesb i/o controller hub datasheet 389 chipset configuration registers 12.1.66 d29ir ? device 29 interrupt route register offset address: 3144?3145h attribute: r/w default value: 3210h size: 16-bit bit description 15 reserved 14:12 interrupt d pin route (idr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intd# pin reported for device 29 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 11 reserved 10:8 interrupt c pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intc# pin reported for device 29 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 7 reserved 6:4 interrupt b pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intb# pin reported for device 29 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 3 reserved 2:0 interrupt a pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the inta# pin reported for device 29 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh#
390 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.67 d28ir ? device 28 interrupt route register offset address: 3146?3147h attribute: r/w default value: 3210h size: 16-bit bit description 15 reserved 14:12 interrupt d pin route (idr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intd# pin reported for device 28 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 11 reserved 10:8 interrupt c pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intc# pin reported for device 28 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 7 reserved 6:4 interrupt b pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intb# pin reported for device 28 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 3 reserved 2:0 interrupt a pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the inta# pin reported for device 28 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh#
intel ? 631xesb/632xesb i/o controller hub datasheet 391 chipset configuration registers 12.1.68 d27ir ? device 27 interrupt route register offset address: 3148?3149h attribute: r/w default value: 3210h size: 16-bit bit description 15 reserved 14:12 interrupt d pin route (idr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intd# pin reported for device 27 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 11 reserved 10:8 interrupt c pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intc# pin reported for device 27 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 7 reserved 6:4 interrupt b pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the intb# pin reported for device 27 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh# 3 reserved 2:0 interrupt a pin route (icr) ? r/w. indicates which physical pin on the intel ? 631xesb/ 632xesb i/o controller hub is connected to the inta# pin reported for device 27 functions. 0h = pirqa# 1h = pirqb# 2h = pirqc# 3h = pirqd# 4h = pirqe# 5h = pirqf# 6h = pirqg# 7h = pirqh#
392 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.69 oic ? other inte rrupt control register offset address: 31ff?31ffh attribute: r/w default value: 00h size: 8-bit 12.1.70 rc ? rtc configuration register offset address: 3400?3403h attribute: r/w r/wo default value: 00000000h size: 32-bit 12.1.71 hptc ? high precision timer configuration register offset address: 3404?3407h attribute: r/w default value: 00000000h size: 32-bit bit description 7:2 reserved 1 coprocessor error enable (cen) ? r/w. 0 = ferr# will not generate irq13 nor ignne#. 1 = if ferr# is low, irq13 generates internally and holds it until an i/o port f0h write. it will also drive ignne# active. 0 apic enable (aen) ? r/w. 0 = the internal ioxapic is disabled. 1 = enables the internal ioxapic and its address decode. bit description 31:5 reserved 4 upper 128 byte lock (ul) ? r/wo. 0 = bytes not locked. 1 = bytes 38h-3fh in the upper 128 byte bank of rtc ram are locked and cannot be accessed. writes will be dropped and reads will not return any guaranteed data. bit reset on system reset. 3 lower 128 byte lock (ll) ? r/wo. 0 = bytes not locked. 1 = bytes 38h-3fh in the lower128 byte bank of rtc ram are locked and cannot be accessed. writes will be dropped and reads will not return any guaranteed data. bit reset on system reset. 2 upper 128 byte enable (ue) ? r/w. 0 = bytes locked. 1 = the upper 128 byte bank of rtc ram can be accessed. 1:0 reserved bit description 31:8 reserved 7 address enable (ae) ? r/w. 0 = address disabled. 1 = decode the high precision timer memory address range selected by bits 1:0 below. 6:2 reserved 1:0 address select (as) ? r/w. this 2-bit field selects 1 of 4 possible memory address ranges for the high precision timer functionality. the encodings are: 00 = fed0_0000h - fed0_03ffh 01 = fed0_1000h - fed0_13ffh 10 = fed0_2000h - fed0_23ffh 11 = fed0_3000h - fed0_33ffh
intel ? 631xesb/632xesb i/o controller hub datasheet 393 chipset configuration registers 12.1.72 gcs ? general control and status register offset address: 3410?3413h attribute:r/w, r/wo default value: 0000000yh y=(00x0x000b) size:32-bit bit description 31:24 reserved 23:16 bist_delay_sel ? r/w. this field determines the amount of time, measured in 125 mhz clocks, waits to deassert the init# signal after sending the cpu_reset_done_ack message. notes 1. this field only has meaning if the bist_en bit (bit 2 in the buc register) is also set. 2. a value of 00h or 01h in this field is not permitted. 3. a1 clock variation permitted in the actual-time the init# signal goes inactive. 4. this field is in the core well. 5. this field is not reset by a cf9 reset with value 06h. implementation choice: this register does not need to be reset by any reset. 15:10 reserved 9 server error reporting mode (serm) ? r/w. 0 = the intel ? 631xesb/632xesb i/o controller hub is the final target of all errors. the mch sends a messages to the intel ? 631xesb/632xesb i/o controller hub for the purpose of generating nmi. 1 = the mch is the final target of all errors from pci express and esi. in this mode, if a fatal, non-fatal, or correctable error on esi or its downstream ports is detected, it sends a message to the mch. if an err_* message is received from the downstream port, it sends that message to the mch. 8 reserved 7 reserved 6 ferr# mux enable (fme) ? r/w. this bit enables ferr# to be a cpu break event indication. 0 = disabled. 1 = ferr# is examined during a c2, c3, or c4 state as a break event. 5 no reboot (nr) ? r/w. this bit is set when the ?no reboot? strap (spkr pin on intel ? 631xesb/632xesb i/o controller hub) is sampled high on pwrok. this bit may be set or cleared by software if the strap is sampled low but may not override the strap when it indicates ?no reboot?. 0 = system will reboot upon the second timeout of the tco timer. 1 = the tco timer will count down and generate the smi# on the first timeout, but will not reboot on the second timeout. 4 alternate access mode enable (ame) ? r/w. 0 = disabled. 1 = alternate access read only registers can be written, and write only registers can be read. before entering a low power state, several registers from powered down parts may need to be saved. in the majority of cases, this is not an issue, as registers have read and write paths. however, several of the isa compatible registers are either read only or write only. to get data out of write-only registers, and to restore data into read-only registers, the intel ? 631xesb/632xesb i/o controller hub implements an alternate access mode.
394 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.73 buc ? backed up control register offset address: 3414?3414h attribute: r/w default value: 0000000xb size: 8-bit all bits in this register are in the rtc well and only cleared by rtcrst# 3 boot bios destination (bbd) ? r/w. the default value of this bit is determined by a strap allowing systems with corrupted or unprogrammed flash to boot from a pci device. the value of the strap can be overwritten by software. when this bit is 0, the pci-to-pci bridge memory space enable bit does not need to be set (nor any other bits) in order for these cycles to go to pci. note that bios enable ranges and the other bios protection and update bits associated with the fwh interface have no effect when this bit is 0. 0 = the top 16mb of memory below 4gb (ff00_0000h to ffff_ffffh) is accepted by the primary side of the pci p2p bridge and forwarded to the pci bus. 1 = the top 16mb of memory below 4gb (ff00_0000h to ffff_ffffh) is not decoded to pci and the lpc bridge claims these cycles based on the fwh decode enable bits. 2 reserved page route (rpr) ? r/w. determines where to send the reserved page registers. these addresses are sent to pci or lpc for the purpose of generating post codes. the i/o addresses modified by this field are: 80h, 84h, 85h, 86h, 88h, 8ch, 8dh, and 8eh. 0 = writes will be forwarded to lpc, shadowed within the intel ? 631xesb/632xesb i/o controller hub, and reads will be returned from the internal shadow 1 = writes will be forwarded to pci, shadowed within the intel ? 631xesb/632xesb i/o controller hub, and reads will be returned from the internal shadow. note, if some writes are done to lpc/pci to these i/o ranges, and then this bit is flipped, such that writes will now go to the other interface, the reads will not return what was last written. shadowing is performed on each interface. the aliases for these registers, at 90h, 94h, 95h, 96h, 98h, 9ch, 9dh, and 9eh, are always decoded to lpc. 1 reserved 0 top swap lock-down (tsld) ? r/wo. 0 = disabled. 1 = prevents buc.ts (offset 3414, bit 0) from being changed. this bit can only be written from 0 to 1 once. bit description bit description 7:3 reserved 2 cpu bist enable (cbe) ? r/w. this bit is in the resume well and is reset by rsmrst#, but not pltrst# nor cf9h writes. 0 = disabled. 1 = the init# signals will be driven active when cpurst# is active. init# and init3_3# will go inactive with the same timings as the other cpu i/f signals (hold time after cpurst# inactive). 1 reserved. 0 top swap (ts) ? r/w. 0 = don?t invert a16. 1 = invert a16 for cycles going to the bios space (but not the feature space) in the fwh. if intel ? 631xesb/632xesb i/o controller hub is strapped for top-swap (gnt[6]# is low at rising edge of pwrok), then this bit cannot be cleared by software. the strap jumper should be removed and the system rebooted.
intel ? 631xesb/632xesb i/o controller hub datasheet 395 chipset configuration registers 12.1.74 fd ? function disable register offset address: 3418?341bh attribute: r/w, ro default value: see bit description size: 32-bit the usb1 functions must be disabled from highest function number to lowest. for example, if only three usb1 host controllers are wanted, software must disable usb1 #4 (ud4 bit set). when disabling usb1 host controllers, the usb2 ehci structural parameters registers must be updated with coherent information in ?number of companion controllers? and ?n_ports? fields. when disabling a function, only the configuration space is disabled. software must ensure that all functionality within a controller that is not desired (such as memory spaces, i/o spaces, and dma engines) is disabled prior to disabling the function. bit description 31:20 reserved 19 pci express 4 disable (pe4d) ? r/w. default is 0. when disabled, the link for this port is put into the ?link down? state. 0 = pci express port #3 is enabled. 1 = pci express port #3 is disabled. 18 pci express 3 disable (pe3d) ? r/w. default is 0. when disabled, the link for this port is put into the ?link down? state. 0 = pci express port #2 is enabled. 1 = pci express port #2 is disabled. 17 pci express 2 disable (pe2d) ? r/w. default is 0. when disabled, the link for this port is put into the ?link down? state. 0 = pci express port #1 is enabled. 1 = pci express port #1 is disabled. 16 pci express 1 disable (pe1d) ? r/w. default is 0. when disabled, the link for this port is put into the ?link down? state. 0 = pci express port #0 is enabled. 1 = pci express port #0 is disabled. 15 usb2 disable (u2d) ? r/w. default is 0. 0 = the usb2 host controller is enabled. 1 = the usb2 host controller is disabled. 14 lpc bridge disable (lbd) ? r/w. default is 0. 0 = the lpc bridge is enabled. 1 = the lpc bridge is disabled. unlike the other disables in this register, the following additional spaces will no longer be decoded by the lpc bridge: ? memory cycles below 16mb (1000000h) ? i/o cycles below 64kb (10000h) ? the internal i/oxapic at fec0_0000 to fecf_ffff memory cycles in the lpc bios range below 4gb will still be decoded when this bit is set, but the aliases at the top of 1mb (the e and f segment) no longer will be decoded. 13:12 reserved 11 usb1 #4 disable (u4d) ? r/w. default is 0. 0 = the 4th usb 1.1 controller (ports 6 and 7) is enabled. 1 = the 4th usb 1.1 controller (ports 6 and 7) is disabled. 10 usb1 #3 disable (u3d) ? r/w. default is 0. 0 = the 3rd usb 1.1 controller (ports 4 and 5) is enabled. 1 = the 3rd usb 1.1 controller (ports 4 and 5) is disabled. 9 usb1 #2 disable (u2d) ? r/w. default is 0. 0 = the 2nd usb 1.1 controller (ports 2 and 3) is enabled. 1 = the 2nd usb 1.1 controller (ports 2 and 3) is disabled. 8 usb1 #1 disable (u1d) ? r/w. default is 0. 0 = the 1st usb 1.1 controller (ports 0 and 1) is enabled. 1 = the 1st usb 1.1 controller (ports 0 and 1) is disabled.
396 intel ? 631xesb/632xesb i/o controller hub datasheet chipset configuration registers 12.1.75 cg ? clock gating offset address: 341c?341fh attribute: r/w, ro default value: 00000000h size: 32-bit 7 reserved 6 ac ?97 modem disable (amd) ? r/w. default is 0. 0 = the ac ?97 modem function is enabled. 1 = the ac ?97 modem function is disabled. 5 ac ?97 audio disable (aad) ? r/w. default is 0. 0 = the ac ?97 audio function is enabled. 1 = the ac ?97 audio function is disabled. 4 high definition audio disable (zd) ? r/w. default is 0. 0 = the high definition audio controller is enabled. 1 = the high definition audio controller is disabled and its pci configuration space is not accessible. 3 sm bus disable (sd) ? r/w. default is 0. 0 = the sm bus controller is enabled. 1 = the sm bus controller is disabled. in ich5 and previous, this also disabled the i/o space. in intel ? 631xesb/632xesb i/o controller hub, it disables only the configuration space. 2 serial ata disable (sad) ? r/w. default is 0. 0 = the sata controller is enabled. 1 = the sata controller is disabled. 1 parallel ata disable (pad) ? r/w. default is 0. 0 = the pata controller is enabled. 1 = the pata controller is disabled and its pci configuration space is not accessible. 0 reserved bit description bit description 31:01 reserved 0 pci express root port static clock gate enable (pescg) ? r/w. 0 = static clock gating is disabled for the pci express root port. 1 = static clock gating is enabled for the pci express root port when the corresponding port is disabled in the function disable register (chipset config registers:offset 3418h) fd.pe1d, fd.pe2d, fd.pe3d or fd.pe4d. in addition to the pci express function disable register, the pci express root port physical layer static clock gating is also qualified by the root port configuration rpc.pc (chipset config registers:offset 0224h:bits 1:0) as the physical layer may be required by an enabled port in a x2 or a x4 configuration.
intel ? 631xesb/632xesb i/o controller hub datasheet 397 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) the intel ? 631xesb/632xesb i/o controller hub integrates pci express to pci-x bridge that also contains registers for its standard hot-plug controller, i/oxapic controller, pci express switch which contains upstream and downstream ports, and one smbus interface. this section describes these registers. a detailed bit description is also provided. there are multiple functions can be seen from pci express?one i/oxapic function, one pci bridge function, one upstream pci express switch function. all of the functions have the same device number of 0, but wi th different function numbers (refer to figure 5-6 and figure 5-14 for device diagram information). 13.1 pci configuration registers as figure 5-6 shows, intel ? 631xesb/632xesb i/o controller hub couples on its ?south? interfaces to three individual x4 pci express links (one is the internal link for intel ? 631xesb/632xesb i/o controller hub lan controller, the other two external links may be combined into a single x8 link by using a strapping pin during reset) and to one 64-bit pci/pci-x secondary bus interface. the ?north? pci express interface is the logical primary bus. the physical pci-x bus segment becomes a separate secondary bus with a pci express to pci-x bridge corresponding to function 3. the upstream pci express port provides the link to another secondary pci bus with a pci express switch model. the standard hot-plug controller (shpc) associated with the pci-x bus segment appears as a capability of the pci express to pci-x bridge. the i/oxapic controller resides as a separate pci function. ? pci express upstream port (bm:d0:f0) . intel ? 631xesb/632xesb i/o controller hub implements an upstream pci express port that provides the link to another secondary pci bus with a pci express switch model. ? pci express downstream port (bp:d0:f0, bp:d1:f0, bp:d2:f0). intel ? 631xesb/632xesb i/o controller hub implements three downstream pci express ports that provide links to other secondary pci buses with a pci express switch model. ? i/oxapic devices (bm:d0:f1). intel ? 631xesb/632xesb i/o controller hub implements a variation of the apic known as the i/oxapic. it resides on the primary bus. ? standard hot-plug controller(bm:d0:f3). intel ? 631xesb/632xesb i/o controller hub supports a single shpc controller. this standard hot-plug controller appears as a capability of its associated pci express to pci-x bridge. ? pci express to pci-x bridge (bm:d0:f3). intel ? 631xesb/632xesb i/o controller hub implements the buffering and control logic between the pci express and the pci-x buses. the pci bus arbitration is handled by these pci devices. the
398 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) pci decoder in this device must decode the ranges for pci express to the mch. this register set also provides support for reliability, availability, and serviceablity (ras). 13.2 memory-mapped registers ? i/oxapic. in addition to the pci configuration registers mentioned above, the i/ oxapic memory-mapped registers are located in the processor memory space located by the mbar register (pci offset 10h) and abar register (pci offset 40h). mbar and abar are located in the i/oxapic pci configuration space. ? standard hot-plug controller. in addition to the pci configuration registers mentioned above, the hot-plug controller memory-mapped registers are located in the processor memory space located by the mbar register (pci offset 10h). the "mbar" is located in the pci express to pci-x bridge pci configuration space. 13.3 pci express* switch, upstream/downstream port registers (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) the pci express upstream port configuration registers reside on bus m, device 0, function 0, where bus m is the bus attached to the upstream port. the configuration registers for the pci express downstream ports reside on pci express bus (bus p), device 0 function 0, device 1 function 0, and device 2 function 0 (refer to figure 5-6 and figure 5-14 for more information). 13.3.1 configuration registers ta b l e 1 3 - 1 shows the pci express switch configuration registers and their address byte offset values. note: registers that are not shown should be treated as reserved. table 13-1. configuration register summary (sheet 1 of 3) address offset symbol register name default access 00?01h vid vendor id register 8086h ro 02?03h did device id register check register description ro 04?05h pcicmd command register 0000h rw, ro 06?07h pcists status register 0010h rwc, ro 08h rid revision id register 00h ro 09?0bh cc class code register 060400h ro 0ch cls cache line size register 00 rw 0dh plt primary latency timer register 00h rw 0eh htype header type register 80h (upstream) 00 (downstream) ro 18-1ah bnum bus number register 000000h rw 1bh slt secondary latency timer register 00h rw 1c-1dh iobl i/o base and limit register 0000h rw, ro 1e?1fh secsts secondary status register 0000h rwc,ro
intel ? 631xesb/632xesb i/o controller hub datasheet 399 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 20?21h mb memory base register 0000h rw 22-23h ml memory limit register 0000h rw 24?27h pmbl prefetchable memory base and limit register 00010001h rw, ro 28?2bh pb_upper prefetchable base upper 32 bits register 00000000h rw 2c?2fh pl_upper prefetchable limit upper 32 bits register 00000000h rw 34h capp capabilities pointer register 44h ro 3c-3dh intr interrupt information register 0100h ro 3e?3fh bctrl bridge control register 0000h rw, rwc, ro 40?41h cnf pci express configuration register check register description rw, ro 42-43h exp_cmmpc pci express compliance measurement mode port control 0000h rws 44h exp_capid pci express capability identifier register 10h ro 45h exp_nxtp pci express next item pointer register 70h (upstream) 60 (downstream) ro 46?47h exp_cap pci express capability designator register 51h (upstream) 61 (downstream) ro 48?4b exp_dcap pci express device capabilities register 0001h rw, ro 4c?4d exp_dctl pci express device control register 5020h rw, ro 4e-4f exp_dsts pci express device status register 0 rwc, ro 50-53h exp_lcap pci express link capabilities register 0003f481h (up) 0003f441 (down) ro 54-55h exp_lctl pci express link control register 0040h rw, ro 56?57h exp_lsts pci express link status register 0000h ro 58-5b exp_scap pci express slot capabilities register 00000000 rw,ro 5c-5dh exp_sctl pci express slot control register 03c0 rw, ro 5e-5fh exp_ssts pci express slot status register 0000 rwc,ro 60h msi_capid pci express msi capability identifier register 00h (upstream) 05 (downstream) ro 61h msi_nxtp pci express msi next pointer register 70 ro 62h msi_mc pci express msi message control 80 rw,ro 64h msi_ma pci express msi message address 00 rw,ro 6c-6dh msi_md pci express msi message data 0000 rw 70h exppm_capid power management capability register 01h ro 71h exppm_nxtp pci express bridge power management next item pointer 00 ro 72-73h exppm_pmc pci express bridge power management capabilities register c802h ro 74h exppm_pmcsr power management data register 0000h ro 76h exppm_bse pci express bridge power management bridge support extensions 00h ro table 13-1. configuration register summary (sheet 2 of 3) address offset symbol register name default access
400 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.1 offset 00h: vid?vendor id register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 00?01h attribute: ro default value: 8086h size: 16 bits 13.3.1.2 offset 02h: did?device id register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 02?03h attribute: ro default value: see description (function 0) size: 16 bits 77h exppm_data pci express bridge power management data field 00h ro fch exp_phc pci express port hide control 0003h rws 100-103h err_caphdr pci express advanced error capability identifier 30010001(up) 00010001(down) ro 104-107h errunc_sts pci express uncorrectable error status register 0000h rwc 108-10bh errunc_msk pci express uncorrectable error mask register 0000h rwc 10c-10fh errunc_sev pci express uncorrectable error severity register 00060010h rwc 110-113h errcor_sts pci express correctable error status register 0000h rwc 114-117h errcor_msk pci express correctable error mask register 0000h rwc 118-11bh adverr_ctl advanced error control and capabilities register 0000h rwc 11c-12bh exphdrlog pci express hdr log register 0000h rwc 168h ras_sts miscellaneous error status register 0000h ro 170h pexh_sts intel ? 631xesb/632xesb i/o controller hub pci express to pci-x bridge strap status register 0000h ro 172 pxb_strap intel ? 631xesb/632xesb i/o controller hub pci express upstream and downstream strap status register 00h ro 190h evtctrl event logic control 0h ro table 13-1. configuration register summary (sheet 3 of 3) address offset symbol register name default access bits type reset description 15:00 ro 8086h vendor id (vid): 16-bit vendor id assigned to intel vid=8086h. bits type reset description 15:0 ro for upstream port: 3500h - 3503h depending on sku. for downstream port 1 (device 0): 3510h - 3513h depending on sku. for downstream port 2 (device 1): 3514h - 3517h depending on sku. for downstream port 3 (device 2): 3518h - 351bh depending on sku. device id (did): device number of the intel ? 631xesb/632xesb i/o controller hub upstream and downstream pci express functions.
intel ? 631xesb/632xesb i/o controller hub datasheet 401 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.3 offset 04h: pcicmd?pci command register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 04?05h attribute: rw, ro default value: 0000h size: 16 bits bits type reset description 15:11 ro 0 reserved. 10 rw 0 interrupt mask (intmask): this bit disables the shpc from asserting irq[23]#. this bit is valid only when the msi is disabled; that is, the msi enable bit (bit 0) in the msc_mc register (offset 5eh) is a zero. a value of 0 for this bit enables the assertion of its irq[23]# signal. a value of 1 disables the assertion of its irq[23]# signal. if irq[23]# is already asserted when this bit is set, it must be de-asserted. 9ro 0 fast back-to-back transactions enable (fbte): this bit has no meaning on the pci express interface. it is hardwired to ?0?. 8rw 0 serr enable (see): controls the enable for pci-compatible serr reporting on the pci express interface (along with the status register (sts reg, offset 06h, bit 14). 0 = disable serr reporting 1 = enable serr reporting note that this bit does not affect the setting of the pci express error bits in the pci express capability structure. 7 ro 0 wait cycle control (wcc): reserved. 6rw 0 parity error response (per): controls the response to data parity errors forwarded from the pci express interface and peer pci on read completions. 0 = disable. ignore errors on the pci express interface and the peer-pci interface. 1 = enable. report read completion data parity errors on the pci e interface and set the master data parity detected (mdpd) bit in the status register. note that this bit does not affect the setting of the pci express error bits in the pci express capability structure. 5 ro 0 vga palette snoop (vga_ps): reserved. 4ro 0 memory write and invalidate (mwie): the intel ? 631xesb/632xesb i/o controller hub does not generate memory write and invalidate transactions, as the pci express interface does not have a corresponding transfer type. 3 ro 0 special cycle enable (sce): reserved. 2rw 0 bus master enable (bme): controls the ability to act as a master on pci express when forwarding memory transactions from pci (memory, i/o, and configuration) or when generating msi transaction on behalf of the shpc. 0 = disable. 1 = enable. note that this bit does not stop intel ? 631xesb/632xesb i/o controller hub from issuing completions on pci express. software must guarantee that when this bit is set, all inbound posted tr ansactions are flushed in the bridge segment. otherwise, delayed completions (for example, configuration read completions) could be stuck behind a posted write and cannot proceed from pci to pci express. 1rw 0 memory space enable (mse): controls the response as a target to memory accesses on the pci express interface that address a device behind the pci express switch. 0 = these transactions are master aborted on the pci express interface. 1 = to allowed memory transaction from pci to be passed to the pci express. 0rw 0 i/o space enable (iose): controls the pci express to pci-x bridge's response as a target to i/o transactions on the pci express interface that addresses a device that resides behind the pci express to pci-x bridge. 0 = these transactions are master aborted on the pci express interface. 1 = enables response to i/o transaction initiated on the pci express interface.
402 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.4 offset 06h: pcists?status register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 06?07h attribute: rwc, ro default value: 0010h size: 16 bits bits type reset description 15 rwc 0 detected parity error (dpe): 0 = software clears this bit by writing a 1 to it. 1 = data parity error on the pci express bus interface or peer pci segment is detected. this bit gets set even if the parity error response (bit 6 of the command register) is not set. 14 rwc 0 signaled system error (sse): this bit is used for pci-compatible error signaling on the pci express bus. 0 = software clears this bit by writing a 1 to it. 1 = serr# is reported to the pci express interface. 13 rwc 0 received master-abort (rma): 0 = software clears this bit by writing a 1 to it. 1 = intel ? 631xesb/632xesb i/o controller hub is acting as master on the pci express interface and receives a completion packet with master abort status. 12 rwc 0 received target-abort (rta): 0 = software clears this bit by writing a 1 to it. 1 = intel ? 631xesb/632xesb i/o controller hub is acting as master on the pci express interface and receives a completion packet with target abort status. 11 rwc 0 signaled target abort (sta): this bit is set whenever the pci express switch generates a completion packet with ca status on pci express (either forwarded from pci interface or internally signaled by shpc) 0 = target abort not signaled on the pci interface. 1 = target abort signaled on the pci interface. software clears this bit by writing a 1 to it. 10:9 ro 0 devsel# timing (dvt): these bits have no meaning on the pci express interface. hardwired to 0. 8rwc 0 master data parity error (mdp): 0 = software clears this bit by writing a 1 to it. 1 = pci express switch receives a completion packet from the pci express interface from a previous request, and detects a data parity error, and the parity error response (per) bit in the command register (offset 04h, bit 6) is set. 7ro 0 fast back-to-back transactions capable (fbc): does not apply to pci express. hardwired to 0. 6ro 0reserved. 5ro 0 66 mhz enable (66en): does not apply to pci express. hardwired to 0. 4ro 1 capabilities list (capl): indicates that the pci express switch contains the capabilities pointer in the bridge. offset 34h (capabilities list pointer - capp) indicates the offset for the first entry in the linked list of capabilities. 3ro 0 interrupt status (intsts): this bit reflects the state of the shpc interrupt, when the interrupt is generated via the irq[23]# wire (not via msi). only when the intx mask bit in the command register is a 0 and this interrupt status bit is a 1, and msi is disabled will the shpc assert the irq[23]# signal to the i/oxapic. setting the intx mask bit to a 1 has no effect on the setting of this bit. 2:0 ro 0 reserved.
intel ? 631xesb/632xesb i/o controller hub datasheet 403 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.5 offset 08h: rid?revision id register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 08h attribute: ro default value: 00h size: 8 bits 13.3.1.6 offset 09h: cc?class code register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 09?0bh attribute: ro default value: 060400h size: 24 bits this contains the class code, sub class code, and programming interface for the device. 13.3.1.7 offset 0ch: cls?cache line size register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 0ch attribute: rw default value: 00h size: 8 bits this indicates the cache line size of the system. 13.3.1.8 offset 0dh: plt?primary latency timer register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 0dh attribute: rw default value: 00h size: 8 bits this register does not apply to the pci express interface. bits type description 7:0 ro revision id (revid): this indicates the stepping of the intel ? 631xesb/ 632xesb i/o controller hub pci express switch. 00 = a0 stepping 01 = a1 stepping bits type reset description 23:16 ro 06h base class code (bcc): the value of "06h" indicates that this is a bridge device. 15:8 ros 04h sub class code (scc): 8-bit value that indicates this is of type pci-to-pci bridge. 7:0 ro 0 programming interface (pif): indicates that this is standard (non- subtractive) pci-to-pci bridge. bits type reset description 7:0 rw 0 cache line size (cls): this field is implemented by pci express devices as a rw field for legacy compatibility purposes but has no impact on any pci express device functionality. bits type reset description 7:3 ro 0 time value (tv): read only register since pci express does not have an equivalent functionality. 2:0 ro 0 reserved.
404 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.9 offset 0eh: htype?header type register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 0eh attribute: rw default value: 81h size: 8 bits this register is used to indicate the layout for bytes 10h through 3fh of the device?s configuration space. 13.3.1.10 offset 18h: pbn? primary bus number register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 18h attribute: rw default value: 00h size: 8 bits this register is used to record the bus number of the logical pci bus segment to which the primary interface of the bridge is connected. 13.3.1.11 offset 1bh: slt?secondary latency timer (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 1bh attribute: rw, ro default value: 00h (pci) size: 8 bits 40h (pci-x) this timer controls the amount of time that the pci express switch will continue to burst data on its secondary interface. the counter starts counting down from the assertion of pxframe#. if the grant is removed, the expiration of this counter will result in the de-assertion of pxframe#. if the grant has not been removed, then the bits type reset description upstream port 7ro 1 multi-function device (mfd): reserved as ?1? to indicate the bridge is a multi-function device. downstream port 7ro 0 multi-function device (mfd): reserved as ?0? to indicate the bridge is not a multi-function device. 6:0 ro 01h header type (htype): defines the layout of addresses 10h through 3fh in configuration space. reads as 01h to indicate that the register layout conforms to the standard pci express-to-pci bridge layout. bits type reset description 23:16 rw 00 subordinate bus number (sbbn): indicates the highest pci bus number below this bridge. any type one configuration cycle on pci express whose bus number is greater than the secondary bus number and less than or equal to the subordinate bus number will be run as a type one configuration cycle. 15:08 rw 00 secondary bus number (scbn): indicates the bus number of the pci express bus to the south of this port. for the upstream port, this is the bus number for the pci express bus internal to the pci express switch which connects the pci express upstream port to the pci express downstream ports. any type one configuration cycle matching this bus number will be translated to a type 0 configuration cycle and passed to the appropriate downstream port. 7:0 rw 0 primary bus number (pbn): this field indicates the bus number of the pci express interface. configuration software programs the value in this register. any type 1 configuration cycle with a bus number less than this number will not be accepted by this portion of the intel ? 631xesb/632xesb i/o controller hub.
intel ? 631xesb/632xesb i/o controller hub datasheet 405 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) pci express switch may continue ownership of the bus. secondary latency timer's default value should be 64 in pci-x mode (refer to section 1.12.2 of the pci-x* protocol addendum to the pci local bus specification , revision 2.0a, rule 11). 13.3.1.12 offset 1ch: iob?i/o base register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 1ch attribute: rw, ro default value: 00h size: 8 bits this register defines the base and limit (aligned to a 4-kbyte boundary) of the i/o area of the bridge. accesses from the pci express interface that are within the ranges specified in this register will be sent to pci if the i/o space enable bit is set. accesses from pci that are outside the ranges specified will master abort. 13.3.1.13 offset 1dh: iol?i/o limit register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 1dh attribute: rw, ro default value: 00h size: 8 bits this register defines the limit (aligned to a 4-kbyte boundary) of the i/o area of the bridge. accesses from the pci express interface that are within the ranges specified in this register will be sent to pci if the i/o space enable bit is set. accesses from pci that are outside the ranges specified will master abort. bits type reset description 7:3 ro 0 secondary latency timer (slt): hard wired to 0 2:0 ro 0 reserved. bits type reset description 7:4 rw 0 i/o base address bits [15:12] (ioba): this field defines the bottom address of an address range to determine when to forward i/o transactions from one interface to the other. these bits correspond to address lines 15:12 for 4 kb alignment. bits 11:0 are assumed to be 000h. 3:2 ro 0 i/o base address bits [11:10] (ioba1k): when the en1k bit is set in the intel ? 631xesb/632xesb i/o controller hub configuration register (cnf), these bits become read/write and are compared with i/o address bits [11:10] to determine the 1 kb base address. when the en1k bit is cleared, this field becomes read only. 1:0 ro 0 i/o base addressing capability (iobc): these are hardwired to ?0?, indicating support for only 16-bit i/o addressing. bits type reset description 7:4 rw 0 i/o limit address bits [15:12] (iola): defines the top address of an address range to determine when to forward i/o transactions from pci express to pci. these bits correspond to address lines 15:12 for 4 kb alignment. bits [11:0] are assumed to be fffh. 3:2 ro 0 i/o limit address bits [11:10] (iola1k): when the en1k bit is set in the intel ? 631xesb/632xesb i/o controller hub configuration register (cnf), these bits become read/write and are compared with i/o address bits [11:10] to determine the 1 kb limit address. when the en1k bit is cleared, this field becomes read only. 1:0 ro 0 i/o limit addressing capability (iolc): these bits are hardwired to ?0?, indicating support for only 16-bit i/o addressing.
406 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.14 offset 1eh: ssts?secondary status register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 1e?1fh attribute: rwc, ro default value: 02a0h size: 16 bits bits type reset description 15 rwc 0 detected parity error (dpe): this bit reports the detection of an uncorrectable address, attribute or data error by the intel ? 631xesb/632xesb i/o controller hub?s pci interface. this bit is set when any one of the following three conditions are true: ? an uncorrectable address or attribute error as a potential target is detected. ? an uncorrectable data error when the target of a write transaction. ? an uncorrectable data error when the master of a read transaction (immediate read data) is detected. this bit gets set even if the parity error response enable bit (bit 0 of offset 3e?3fh) of the bridge control register. 0 = uncorrectable address, attribute or data error not detected on the pci interface. 1 = uncorrectable address, attribute or data error detected on the pci interface. software clears this bit by writing a 1 to it. 14 rwc 0 received system error (rse): this bit reports the detection of a serr# assertion on the pci interface. 0 = serr# assertion on the pci interface has not been detected. 1 = serr# assertion on the pci interface has been detected. software clears this bit by writing a 1 to it. 13 rwc 0 received master abort (rma): this bit reports the detection of a master-abort termination when the pci express switch is acting as a pci master. 0 = master-abort not detected on the pci interface. 1 = master-abort detected on the pci interface software clears this bit by writing a 1 to it. 12 rwc 0 received target abort (rta): this bit reports the detection of a target-abort termination when the pci express switch is acting as a pci master 0 = target-abort not detected on the pci interface. 1 = target-abort detected on the pci interface software clears this bit by writing a 1 to it. 11 rwc 0 signaled target abort (sta): this bit reports the signaling of a targ et-abort termination by the pci express switch when it responds as the target of a transaction on the pci interface. 0 = target-abort not signaled on the pci interface. 1 = target-abort signaled on the pci interface. software clears this bit by writing a 1 to it. 10:9 ro 01b devsel# timing (dvt): this field indicates that the pci express switch responds in medium decode time to all cycles targeting the pci express interface.
intel ? 631xesb/632xesb i/o controller hub datasheet 407 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.15 offset 20h: mb?memory base register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 20?21h attribute: rw, ro default value: 0000h size: 16 bits this register defines the base (aligned to a 1-mbyte boundary) of the prefetchable memory area of the bridge. accesses from the pci express interface that are within the range specified in this register will be sent to pci if the memory space enable bit is set. accesses from pci that are outside the range specified will be forwarded to the pci express interface if the bus master enable bit is set. 13.3.1.16 offset 22h: ml?memory limit register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 22?23h attribute: rw, ro default value: 0000h size: 16 bits this register defines the limit (aligned to a 1 mbyte boundary) of the prefetchable memory area of the bridge. accesses from the pci express interface that are within the range specified in this register will be sent to pci if the memory space enable bit is set. accesses from pci that are outside the range specified will be forwarded to the pci express interface if the bus master enable bit is set. 8rwc 0 master data parity error (mdp): this bit is used to report the detection of an uncorrectable data error. this bit is set if the pci express switch is the bus master of the transaction on the pci interface, the parity error response bit in the bridge control register is set, and either of the following two conditions occur: ? the pci express switch asserts perr# on a read transaction ? the pci express switch detects perr# asserted on a write transaction 0 = no uncorrectable data error detected on the pci interface. 1 = uncorrectable data error detected on the pci interface. once set, this bit remains set until it is reset by writing a 1 to this bit location. if the parity error response bit is cleared, this bit is never set. 7ro 1 fast back-to-back transactions capable (fbtc): indicates that the secondary interface can receive fast back-to-back cycles. 6ro 0reserved. 5ro 1 66 mhz capable (c66): indicates the secondary interface of the bridge is 66 mhz capable. 4:0 ro 0 reserved. bits type reset description bits type reset description 15:4 rw 0 memory base (mb): these bits are compared with bits [31:20] of the incoming address to determine the lower 1 mb aligned value (inclusive) of the range. the incoming address must be greater than or equal to this value. 3:0 ro 0 reserved. bits type reset description 15:4 rw 0 memory limit (ml): these bits are compared with bits [31:20] of the incoming address to determine the uppe r 1mbyte aligned value (exclusive) of the range. the incoming address must be less than this value. 3:0 ro 0 reserved.
408 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.17 offset 24h: pmbl?prefetchable memory base and limit register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 24?27h attribute: rw, ro default value: 00010001h size: 32 bits defines the base (aligned to a 1 mbyte boundary) of the prefetchable memory area of the bridge. accesses from the pci express interface that are within the ranges specified in this register will be sent to pci if the memory space enable bit is set. accesses from pci that are outside the ranges specified will be forwarded to the pci express interface if the bus master enable bit is set. note that even though this register specifies a valid prefetchable memory window, the pci express switch does not prefetch through this window in the outbound direction (reads from pci express to pci). in the inbo und direction, prefetchability through this window is controlled through the pci express switch configuration register bits 4:3, at offset 40h. 13.3.1.18 offset 28h: pmbu32?prefetchable base upper 32 bits register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 28?2bh attribute: rw, ro default value: 00000000h size: 32 bits this defines the upper 32 bits of the prefetchable address base register. 13.3.1.19 offset 2ch: pmlu32?prefetchable limit upper 32 bits register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 2c?2fh attribute: rw default value: 00000000h size: 32 bits this defines the upper 32 bits of the prefetchable address limit register. bits type reset description 31:20 rw 0 prefetchable memory limit (pml): these bits are compared with bits [31:20] of the incoming address to determine the upper 1mbyte aligned value (exclusive) of the range. the incoming address must be less than this value. 19:16 ro 1 64-bit indicator (is64l): indicates that 64-bit addressing is supported for the limit. this value must be in agreement with the is64b field. 15:4 rw 0 prefetchable memory base (pmb): these bits are compared with bits [31:20] of the incoming address to determine the lower 1 mb aligned value (inclusive) of the range. the incoming address must be greater than or equal to this value. 3:0 ro 1 64-bit indicator (is64b): indicates that 64-bit addressing is supported for the limit. this value must be in agreement with the is64l field. bits type reset description 31:0 rw 0 prefetchable memory base upper portion (pmbu): all bits are read/ writeable; full 64-bit addressing supported. bits type reset description 31:0 rw 0 prefetchable memory limit upper portion (pmlu): all bits are read/ writeable; full 64-bit addressing supported.
intel ? 631xesb/632xesb i/o controller hub datasheet 409 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.20 offset 34h: capp?capabilities pointer register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 34h attribute: ro default value: 44h size: 8 bits this register is used to point to a linked list of additional capabilities. 13.3.1.21 offset 3ch: intr?interrupt information register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 3c-3dh attribute: rwo, ro default value: 00h size: 16 bits this register communicates interrupt information. 13.3.1.22 offset 3eh: bctrl?bridge control register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 3e?3fh attribute: rw, rwc; ro default value: 0000h size: 16 bits this register provides extensions to the command register that are specific to a bridge. the bridge control register provides many of the same controls for the secondary interface that are provided by the command register for the primary interface. some bits affect operation of both interfaces of the bridge. bits type reset description 7:0 ro 44h capabilities pointer (ptr): this field indicates that the pointer for the first entry in the pci express capability list is at offset 44h in configuration space. bits type reset description 15:8 rwo 01h interrupt pin (intr): the logical primary bus interrupt pin is inta# for the upstream port with a corresponding register value of 01h. 7:0 ro 00h interrupt line(line): this register is used to convey the interrupt line routine information. not used because pci express does not have interrupt lines bits type reset description 15:12 ro 0 reserved. 11 ro 0 discard timer serr enable (dtse): not applicable to pci express. hardwired to 0. 10 ro 0 discard timer status (dts): not applicable to pci express. hardwired to 0. 9ro 0 secondary discard timer (sdt): not applicable to pci express. hardwired to 0. 8ro 0 primary discard timer (pdt): not relevant to the pci express interface. this bit is rw for software compatibility only. 7ro 0 fast back-to-back enable (fbe): not applicable to pci express. hardwired to 0. 6rw 0 secondary bus reset (sbr): setting this bit triggers a hot reset on the downstream link for the corresponding pci express port and the pci express hierarchy domain subordinate to the port. in intel ? 631xesb/632xesb i/o controller hub, setting this bit for the upstream port causes the corresponding sbr bits in the downstream ports to get set. note that it is the responsibility of software to make sure that all pending transactions with the bus segment are complete before setting this bit. failing which, transactions could be lost. 5ro 0 master abort mode (mam): not applicable to pci express. hardwired to 0.
410 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.23 offset 40h: cnf?pci express* configuration register (bm:d0:f0, bp:d0:f0, bp:d1:f0, bp:d2:f0) offset: 40?41h attribute: rw, ro default value: see register description size: 16 bits intel ? 631xesb/632xesb i/o controller hub pci express endpoint function-specific control bits. for the downstream ports, these bits are disabled. 4rw 0 vga 16-bit decode (v16d): this bit enables the bridge to provide 16-bit decoding of the vga i/o address precluding the decode of vga alias addresses every 1 kb. this bit requires the vga enable bit (bit 3 of this register) to be set to 1. 0 = disable 1 = enable 3rw 0 vga enable (vgae): modifies the response to vga compatible address. 1 = the following transactions from the pci express interface to pci regardless of the value of the i/o base and i/o limit registers is forwarded. the transactions are qualified by the memory enable and i/o enable in the command register. memory addresses: 000a0000h?000bffffh i/o addresses: 3b0h?3bbh and 3c0h-3dfh. for the i/o addresses, bits [63:16] of the address must be ?0?, and bits [15:10] of the address are ignored (that is, aliased). 0 = the same holds true from secondary accesses to the primary interface in reverse. that is, when the bit is 0, memory and i/o addresses on the secondary interface between the above ranges will be forwarded to the pci express interface. 2rw 0 isa enable (ie): modifies the response by the bridge to isa i/o addresses. this only applies to i/o addresses that are enabled by the i/o base and i/o limit registers and are in the first 64 kb of pci i/o space. 0 = disable. 1 = enable. the bridge will block any forwarding from primary to secondary of i/o transactions addressing the last 768 bytes in each 1 kb block (offsets 100h to 3ffh). this bit has no effect on transfers originating on the secondary bus as the intel ? 631xesb/632xesb i/o controller hub does not forward i/o transactions across the bridge. 1rw 0 serr enable (se): controls the forwarding of secondary interface serr# assertions on the primary interface. 0 = disable. 1 = enable. the intel ? 631xesb/632xesb i/o controller hub will send a pci express interface serr cycle when all of the following are true: serr# is asserted on the secondary interface this bit is set the serr enable bit in the command register is set 0rw 0 parity error response enable (pere): controls the response to address and data parity errors on the secondary interface. 0 = the bridge must ignore any parity errors that it detects and continue normal operation. the intel ? 631xesb/632xesb i/o controller hub must generate parity even if parity error reporting is disabled. 1 = report parity errors. bits type reset description
intel ? 631xesb/632xesb i/o controller hub datasheet 411 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) . 13.3.1.24 offset 42h: exp_cmmpc?pci express* compliance measurement mode (cmm) port control (bp:d0:f0,bp:d1:f0) offset: 42-43h attribute: rws default value: 0000h size: 16 bits the intel ? 631xesb/632xesb i/o controller hub downstream pci express ports pe1 and pe2 compliance measurement mode (cmm) is supported in test mode environment only that can be used to obtain the characteristics of the transmitter and receiver (that is, dft tests focused). in normal operation, the cmm is disabled by default. the compliance mode can be entered by setting pe1 offset 0x42h bit [5] to ?1? and using a valid compliance load plugged into the port. pe1 bit [5] controls pe1 and pe2 and the default setting is ?0?, meaning disabled. a warm reset of the system is required after setting this bit to ?1.? upon reset, intel ? 631xesb/632xesb i/o controller hub detects the presence of a valid compliance load card on this port and enters the compliance mode. note that for hot-plug design, hardware/software considerations are required for power controller and cmm enable state. bits type reset description 15:14 ro 00 pci mode (pmode): not used for pci express. 13 rws 1 i/oxapic config space disable (icsd): 0 = i/oxapic configuration space is enabled. 1 = disables all configuration accesses to i/oxapic configuration space from pci express. all configuration accesses from pci express to i/oxapic are master aborted. this bit has no affect on the smbus or memory accesses to i/oxapic configuration space. by default the apic configuration space is hidden. 12 ro 0 enable i/o space to 1 kb granularity (en1k): reserved, not used for pci express. this field exists in the pcix_config register. 11 ro 1 reserved 10:9 ro 0 pci frequency (pfreq): reserved, not used for pci express. this field exists in the pcix_config register. 8ro 0reserved 7rw 1reserved 6ro 0reserved 5ro 0reserved 4ro 0reserved 3rw 0reserved 2rw 0reserved 1:0 ro 00 maximum inbound delayed transactions (mdt): controls the maximum number of inbound delayed transactions intel ? 631xesb/632xesb i/o controller hub is allowed to have: 00: 4 active, 4 pending 01: 1 active, 1 pending 10: 2 active, 2 pending 11: reserved
412 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.25 offset 44h: exp_capid?pci express* capability identifier register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 44h attribute: ro default value: 10h size: 8 bits 13.3.1.26 offset 45h: exp_nxtp?pci express* next pointer register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 45h attribute: ro default value: 70h or 60h size: 8 bits 13.3.1.27 offset 46h: exp_cap?pci express* capability register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 46 - 47h attribute: ro default value: 0051h(upstream) size: 16 bits 0061h(downstream bits type reset description 15:6 rv 0h reserved 5 rws 0h 0= normal operation (disable compliance) 1= enable compliance (ltssm) 4:0 rv 0h reserved bits type reset description 7:0 ro 10h pci express capability identifier (pci expresscapi): indicates pci express capability. bits type reset description upstream port 7:0 ro 70h next capability pointer (mnptr): points to the next capabilities list pointer which is the pci express power management capability downstream port 7:0 ro 60h next pointer (mnptr): points to the next capabilities list pointer, which is the msi capability. bits type reset description 15:14 ro 0 reserved. upstream port 13:9 ro 0 interrupt message number: not used. 8 ro 0 slot implemented: 1: indicates the pci express link associated with this port is connected to a slot 0: indicates no slot is connected to this port upstream port and downstream port attached to internal core: this bit is hardwired to 0 7:4 ro 5h device/port type (devport): indicates the type of pci express logical device. value of 5h indicates that this is a upstream port of a pci express switch downstream port
intel ? 631xesb/632xesb i/o controller hub datasheet 413 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.28 offset 48h: exp_dcap?pci express* device capabilities register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 48 ? 4bh attribute: ro default value: 00000001h size: 32 bits this register contains information about the pci express link capabilities. 13:9 ro 0 interrupt message number: this field indicates the interrupt message number that is generated from the pci express port. when there is more than one msi interrupt number, this register field is required to contain the offset between the base message data and the msi message that is generated when the status bits in the slot status register or root port status registers are set. the chipset is required to update the field if the number of msi messages changes. 8ro or rwo 0 slot implemented: 1: indicates the pci express link associated with this port is connected to a slot 0: indicates no slot is connected to this port downstream ports attached to external links: this bit is rwo 7:4 ro 6h device/port type (devport): indicates the type of pci express logical device. value of 6h indicates that this is a downstream port of a pci express switch. 3:0 ro 1h capability version (capver): indicates pci-sig defined pci express capability structure version number. must be 1h for this version. bits type reset description bits type reset description 31:28 ro 0 reserved. 27:26 ro 0 captured slot power limit scale: for upstream port: in combination with the slot power limit value, specifies the upper limit on power supplied by slot. power limit (in watts) calculated by multiplying the value in this field by the value in the sl ot power limit value field. this value is set by the set_slot_power_limit message. for downstream ports: not used. hardwired to 0. 25:18 ro 000h captured slot power limit value : for upstream port: in combination with the slot power limit scale value, specifies the upper limit on power supplied by slot. power limit (in watts) calculated by multiplying the value in this field by the value in the slot power limit scale field. this value is set by the set_slot_power_limit message. for downstream ports: not used. hardwired to 0. 17:15 ro 0 reserved 14 ro 0 power indicator present: not used. hardwired to 0. 13 ro 0 attention indicator present: not used. hardwired to 0. 12 ro 0 attention button present: not used. hardwired to 0. 11:9 ro 0 endpoint l1 acceptable latency (l1al): the pci express switch does not support l1 link state power management (lspm). 8:6 ro 0 endpoint l0s acceptable latency (l0al): the pci express switch wants the least possible latency out of l0s.
414 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.29 offset 4ch: exp_dctl?pci express* device control register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 4c ? 4dh attribute: rw, ro default value: 5020h size: 16 bits this register contains command bits that control the pci express switch behavior on the pci express bus. 5ro 0 extended tag field supported (etfs): this field indicates the maximum supported size of the tag field. defined encodings are: 0 = 5-bit tag field supported 1 = 8-bit tag field supported the pci express switch supports only a 5-bit tag. 4:3 ro 0 reserved. 2:0 ro 1 supported maximum payload size (smps): the pci express switch supports a max payload size of 256 byte packets. bits type reset description bits type reset description 15 ro 0 reserved 14:12 rw 101b max_read_request size (mrrs): the pci express switch cannot send requests greater than the size indicated by this field. encodings are: value request size 000b 128 bytes 001b 256 bytes 010b 512 bytes 011b 1024 bytes 100b 2048 bytes 101b 4096 bytes 110b reserved 111b reserved 11 ro 0 enable no snoop (ens): this does not apply to the pci express switchpci express switch since it does not set the no snoop bit on msi transactions it generates. 10 ro 0 auxiliary (aux) power pm enable (auxpwrpm_en): the pci express switch ignores this since it does not support aux power. 9ro 0 phantom function enable (pfe): the pci express switch ignores this since it does not support phantom functions. 8ro 0 extended tag field enable (etfe): always a 0 since the pci express switch only supports a 5-bit tag. 7:5 rw 001 maximum payload size (mps): for pci express switch this must be programmed to either 000 (128b) or 001(256b). any other value will default to a behavior of 128b. 4rw 0reserved. 3rw 0 unsupported request reporting enable (urre): enables reporting of unsupported requests.
intel ? 631xesb/632xesb i/o controller hub datasheet 415 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.30 offset 4eh: exp_dsts?pci express* device status register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 4e ? 4fh attribute: rwc; ro default value: 0000h size: 16 bits this register contains information on the pci express device status. 13.3.1.31 offset 50h: exp_lcap?pci express* link capabilities register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 50 ? 53h attribute: ro default value: see reg desc. size: 32 bits this register identifies pci express link specific capabilities. 2rw 0 fatal error reporting enabled (fere): controls reporting of fatal errors. 0 = disable. 1 = pci express switch will report fatal errors. 1rw 0 non-fatal error reporting enabled (nfere): controls reporting of non- fatal errors. 0 = disable. 1 = pci express switch will report uncorrectable errors. 0rw 0 correctable error reporting enable (cere): controls reporting of correctable errors. 0 = disable. 1 = report correctable errors. bits type reset description bits type reset description 15:6 ro 0 reserved. 5ro 0 transactions pending (tp): reserved 4ro 0 aux power detected (apd): the pci express switch does not support aux power and hence this bit is reserved. 3rwc 0 unsupported request detected urd): the pci express switch sets this bit when any unsupported request from pci express is received. this includes requests that are not claimed by any functions within the pci express switch, but does not include any request that is forwarded to the pci interface with completions returned with an unsupported request status. 2rwc 0 fatal error detected (ferrd): when set, a fatal error has been detected (regardless of whether an error message was generated or not). this bit remains set until software writes a 1 to clear it. 1rwc 0 non-fatal error detected (nferrd): when set, a nonfatal error has been detected (regardless of whether the mask bit was set in advanced error capability or not). this bit remains set until software writes a 1 to clear it. 0rwc 0 correctable error detected (cerrd): when set, a correctable error has been detected (regardless of whether an error message was generated). this bit remains set until software writes a 1 to clear it. bits type reset description upstream port 31:24 ro 0 reserved. downstream port 31:24 rwo 0 port number: this field indicates the pci express port number assigned to this link. this can be over-written and initialized by firmware. 23:18 ro 0 reserved. 17:15 ro 111b l1 exit latency (l1el): l1 transition is not supported.
416 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.32 offset 54h: exp_lctl? pci express* link control register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 54 ? 55h attribute: rw, ro default value: 0040h size: 16 bits this register controls pci express link specific parameters. 14:12 ro 111b l0s exit latency (l0el): the value in these bits is influenced by bit 6 in the link control register. note that software could write the bit 6 in link control register to either a 1 or 0 and these bits should change accordingly. the mapping is shown below: bit 6 in exp_lctl bits 14:12 in exp_lcap 0 111b 1 derived from hardware bios should insure the l0s exit latency for upstream port function 0 matches the l0s exit latency for upstream port function 3. 11:10 ro 1h active state link pm support (aslpms): only active state l0s supported. upstream port 9:4 ro 08h maximum link width (mlw): support a x8, x4 link maximum. downstream port 9:4 ro 04h or 08h maximum link width (mlw): support a x4 or x8 link maximum. 3:0 ro 1h maximum link speed (mls): support 2.5 gbps. bits type reset description bits type reset description 15:8 ro 0 reserved. 7rw 0 extended synch (exts): this bit when set forces extended transmission of 4096 fast training sequence (fts) ordered sets in fts and an extra 1024 training sequence one (ts1) at exit from l1 prior to entering l0. this mode provides external devices monitoring the link time to achieve bit and symbol lock before the link enters l0 state and resumes communication. default value for this bit is 0. 6rw 0 common clock configuration (ccc): this bit when set indicates that this port and the port at the opposite end of this link are operating with a distributed common reference clock. a value of 0 indicates that this component and the component at the opposite end of this link are operating with asynchronous reference clock. note that this bit is used to reflect the proper l0s exit latency value in the pcie_lcap register. upstream port 5:4 ro 0 reserved. downstream port 5rw 0 retrain link: this bit, when set, initiates link retraining in the given pci express port. it always returns 0 when read. 4rw 0 disable link: this bit, when set, disables the link for the given pci express port. 3:2 ro 0 reserved. 1:0 rw 0 active state link pm control (aslpmc): enables the pci express switch to enter l0s 00 = l0s entry disabled 01 = pci express switch enters l0s per the specification requirements for l0s entry. 10 =reserved 11 = reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 417 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.33 offset 56h: exp_lsts ? pci express* link status register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 56 ? 57h attribute: ro default value: see reg. desc. size: 16 bits this register provides information about pci express link specific parameters. 13.3.1.34 offset 58h: exp_scap ? pci express* slot capabilities register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 58 ? 5bh attribute: ro default value: 0h size: 32 bits this register is used only by downstream ports in which the slotimp bit in the pcie_cap register is 1. this includes all downstream ports that have hot-plug-capable devices attached. bits type reset description 15:13 ro 0 reserved. 12 ros 0 slot clock configuration ? this bit indicates that when intel ? 631xesb/ 632xesb i/o controller hub is on a pci express connector, that it is using the same reference clock as is provided at the connector. a value of 0 indicates independent reference clock and a value of 1 indicates same reference clock. note that this bit becomes rws when acnf[2] is set. upstream port 11:10 ro 0 reserved. downstream port 11 ro x link training: this read-only bit indicates the physical layer ltssm is in the configuration or recovery state, or that 1b was written to the retrain link bit but link training has not yet begun. hardware clears this bit when the ltssm exits the configuration/recovery state. 10 ro x undefined ? the value read from this bit is undefined. in previous versions of this specification, this bit was used to indicate a link training error. system software must ignore the value read from this bit. system software is permitted to write any value to this bit. 9:4 ro x negotiated link width (nlw): this field indicates the negotiated width of pci express link. defined encodings are: 000100b x4 001000b x8 3:0 ro 0001b link speed (ls): this field indicates the negotiated link speed of the pci express link. the intel ? 631xesb/632xesb i/o controller hub supports only 2.5 gbps. bits type reset description downstream port 31:19 rwo 0 physical slot number ? this hardware initialized field indicates the physical slot number attached to this port. this field must be hardware initialized to a value that assigns a slot number that is globally unique within the chassis. these registers should be initialized to 0 for ports connected to devices that are either integrated on the motherboard or integrated within the same silicon as the switch device or root port. 18:17 ro 0 reserved. 16:15 rwo 00b slot power limit scale ? specifies the scale used for the slot power limit value. 00 = 1.0x (25.5 - 255) 01 = 0.1x (2.55 ? 25.5) 10 = 0.01x (0.255 ? 2.55) 11 = 0.001x (0.0 ? 0.255)
418 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.35 offset 5ch: exp_sctl? pci express* slot control register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 5ch attribute: rw, ro default value: 3ch size: 16 bits note: this register is used only by downstream ports in which the slotimp bit in the pcie_cap register is 1. this includes all downstream ports that have hot-plug-capable devices attached. 14:7 rwo 0 slot power limit value ? in combination with the slot power limit scale value, this register specifies the upper limit on power supplied by slot. power limit (in watts) calculated by multiplying the value in this fi eld by the value in the slot power limit scale field. this value is set by the set_slot_power_limit message or hardwired to 00h. 6rwo 0 hot-plug capable ? this bit when set indicates that this slot is capable of supporting hot-plug operations. used as hot-plug enable for the hot-plug controller. 5ro 0 hot-plug surprise ? this bit when set indicates that a device present in this slot might be removed from the system without any prior notification. intel ? 631xesb/632xesb i/o controller hub does not support this feature, the bit should always be 0. 4rwo 0 power indicator present ? this bit when set indicates that a power indicator is implemented on the chassis for this slot. 3rwo 0 attention indicator present ? this bit when set indicates that an attention indicator is implemented on the chassis for this slot. 2rwo 0 mrl sensor present ? this bit when set indicates that an mrl sensor is implemented on the chassis for this slot. 1rwo 0 power controller present ? this bit when set indicates that a power controller is implemented for this slot 0rwo 0 attention button present ? this bit when set indicates than an attention button is implemented on the chassis for this slot. bits type reset description bits type reset description 15:11 ro 0 reserved. 10 rws 0h power controller control ? when read this register returns the current state of the power applied to the slot; when written sets the power state of the slot per the defined encodings. 0 ? power on 1 ? power off 9:8 rws 11b power indicator control ? read to this register return the current state of the power indicator; writes to this register set the power indicator. defined encodings are: 00 ? reserved 01? on 10 ? blink 11 ? off 7:6 rws 11b attention indicator control ? read to this register return the current state of the attention indicator; writes to this register set the attention indicator. defined encodings are: 00 ? reserved 01 ? on 10 ? blink 11 ? off 5rws0h hot-plug interrupt enable ? this bit when set enables generation of hot- plug interrupt on enabled hot-plug events.
intel ? 631xesb/632xesb i/o controller hub datasheet 419 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.36 offset 5eh: exp_ssts?pci express* slot status register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 5e ? 5fh attribute: rw; ro default value: 0000h size: 16 bits note: this register is used only by downstream ports in which the slotimp bit in the pcie_cap register is 1. this includes all downstream ports that have hot-plug-capable devices attached. 4rws0h command complete interrupt enable - this bit when set enables the generation of hot-plug interrupt or wake message when the controller is ready to accept another command. (this may mean that the command has not actually finished executing.) 3rws0h presence detect changed enable - this bit when set enables the generation of hot-plug interrupt or wake message on an presence detect changed event. 2rws0h mrl sensor changed enable - this bit when set enables the generation of hot-plug interrupt or wake message on an mrl sensor changed event. 1rws0h power fault detected enable ? this bit when set enables the generation of hot-plug interrupt or wake message on a power fault event. 0rws0h attention button pressed enable ? this bit when set enables the generation of hot-plug interrupt or wake message on an attention button pressed event. bits type reset description bits type reset description 15:7 ro 0 reserved. 6ro 0 presence detect state ? this bit indicates the presence of a card in the slot. this bit reflects the status of the presence detect pin. this register required if a slot is implemented. 0 ? slot empty 1 ? card present in slot 5ro 0 mrl sensor state ? this register reports the status of the mrl sensor if it is implemented. 0 ? mrl closed 1 ? mrl open 4rwc 0 command completed ? this bit is set when the hot-plug controller completes an issued command. 3rwc 0 presence detect changed ? this bit is set when a presence detect change is detected. 2rwc 0 mrl sensor changed ? this bit is set when a mrl sensor state change is detected. 1rwc 0 power fault detected ? this bit is set when the power controller detects a power fault at this slot. 0rwc 0 attention button pressed ? this bit is set when the attention button is pressed.
420 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.37 offset 60h: msi_capid?pci express* msi capability identifier register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 60h attribute: ro default value: 00h, 05h size: 8 bits 13.3.1.38 offset 61h: msi_nxtp?pci express* next item pointer register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 61h attribute: ro default value: 70h size: 8 bits 13.3.1.39 offset 62h: msi_mc?pci express* msi message control register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 62 ? 63h attribute: rw, ro default value: 0080h size: 16 bits 13.3.1.40 offset 64h: msi_ma?pci express* msi message address register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 64 ? 6bh attribute: rw,ro default value: 0000h size: 64 bits bits type reset description upstream port 7:0 ro 0 reserved. downstream port 7:0 ro 05 capability id(mcid): capabilities id indicates msi. bits type reset description 7:0 ro 70 next pointer: points to the next capabilities list pointer which is the pci express power management capability. bits type reset description 15:8 ro 0 reserved. 7ro 1 64 bit address capable: pci express switch is capable of generating a 64- bit message address 6:4 rw 000 multiple message enable: pci express switch supports only one message and these bits are r/w for software compatibility. 3:1 ro 000 multiple message capable: pci express switch supports only one message. 0rw 0 msi enable: if set, msi is enabled and does not use internal wires to the internal apic to generate interrupts. bits type reset description 63:2 rw 0 address (addr): system specified message address, always dword aligned. 1:0 ro 00 reserved.
intel ? 631xesb/632xesb i/o controller hub datasheet 421 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.41 offset 6ch: msi_md ? pci ex press* msi message data register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 6ch attribute: rw default value: 0000h size: 16 bits this register identifies specific pci express power management capabilities. 13.3.1.42 offset 70h: exppm_capid ? pci express* bridge power management capability identifier register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 70h attribute: ro default value: 01h size: 8 bits 13.3.1.43 offset 71h: exppm_nxtp ? pci express* bridge power management next item pointer register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 71h attribute: ro default value: 00h size: 8 bits 13.3.1.44 offset 72h: exppm_pmc?pci express* bridge power management capabilities (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 72h attribute: ro default value: c802h size: 16 bits bits type reset description 15:0 rw 0h data (data): this 16-bit field is programmed by system software if msi is enabled. its content is driven onto the lower word (d[15:0]) of the msi memory write transaction. bits type reset description 7:0 ro 01 capability id: capabilities id indicates pci compatible pm. bits type reset description 7:0 ro 80 points to the next capabilities list pointer which is the svid capability. bits type reset description 15:11 ro 11001b pme_support ? the pci express switch supports pme assertion on behalf of shpc when in d3hot. the pci express switch does not generate pme from d3cold 10 ro 0 d2 support: pci express switch does not support d2 device state 9ro 0 d1 support: pci express switch does not support d1 device state 8:6 ro 0 aux current: pci express switch does not support aux power 5ro 0 dsi ? pci express switch does not require device-specific initialization when transitioned to d0 from d3hot state. so this bit is zero. 4ro 0reserved 3ro 0 pme clock: not relevant to pci express and hence hardwired to 0. 2:0 ro 2 version: pci express switch pm implementation is compliant with 1.1 of the pci pm spec
422 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.45 offset 74h:exppm_pmcsr?pci express* bridge power management control/status register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 74 ? 75h attribute: rw, ro, rws default value: 0h size: 16 bits 13.3.1.46 offset 76h:exppm_bse?pci express* bridge power management bridge support extension register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 76h attribute: ro default value: 00h size: 8 bits 13.3.1.47 offset 77h:pciepm_data?pci express* bridge power management data field register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 77h attribute: ro default value: 00h size: 8 bits bits type reset description upstream port 15:0 ro 0h reserved downstream port 15 rwcs 0h pme status: this bit is sticky. when set, the pci express port generates a pme internally independent of the pmeen bit defined below. software clears this bit by writing a 1 when it has been completed. 14:13 ro 0h data scale: pci express switch does not implement data register and hence these two bits are 0 12:09 ro 0h data select: reserved since data register is not implemented 8rws0h pme en: gates assertion of the pme message. 7:2 ro 0h reserved 1:0 rw 0h powerstate ? this 2-bit field is used both to determine the current power state of a function and to set the function into a new power state. pci express switch supported field values are given below. 00b ? d0 01b ? reserved 10b ? reserved 11b ? d3 if software attempts to write an unsupported, optional state to this field, the write operation must complete normally on the bus; however, the data is discarded and no state change occurs. bits type reset description 7ro0h pcc_en (bus power/clock control enable): pci express switch* does not provide either bus or clock control of pci when in d3hot state. this bit is hardwired to 0. 6ro0h b2/b3#: this bit has no meaning in pci express switch since bpcc_en bit is a 0. 5:0 ro 0h reserved bits type reset description 07:00 ro 0h data: pci express switch* does not report the data registe r
intel ? 631xesb/632xesb i/o controller hub datasheet 423 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.48 offset 80h:svid_capid ? subsystem and vendor id capabilities identifier register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 80h attribute: ro default value: 0dh size: 8 bits identifies this item in the capabilities list as the pci bridge subsystem vendor capability. it returns 0dh when read. 13.3.1.49 offset 81h:svid_nxtp ? next item pointer register (bm:d0:f0, bp:d0:f0, bp:d1:f0, bp:d2:f0) offset: 81h attribute: ro default value: 00h size: 8 bits note: indicates where the next item in the capabilities list resides. this is the last item in the list. 13.3.1.50 offset 84h:svid ? subsystem vendor id register (bm:d0:f0, bp:d0:f0, bp:d1:f0, bp:d2:f0) offset: 84h attribute: ro default value: 0000h size: 16 bits 13.3.1.51 offset 86h:sid ? subsystem id register (bm:d0:f0, bp:d0:f0, bp:d1:f0, bp:d2:f0) offset: 86h attribute: ro default value: 0000h size: 16 bits bits type reset description 07:00 ro 0d identifier (id): indicates this is the pci bridge subsystem vendor capability. bits type reset description 07:00 ro 00 next pointer: svid is the last capability list item and hence these bits are all 0s. bits type reset description 07:00 rwos 0000 subsystem vendor identifier: indicates the manufacturer of the subsystem. this field is write once and is locked down until a power good reset occurs. bits type reset description 07:00 rwos 0000 subsystem identifier: indicates the subsystem as identified by the vendor. this field is write once and is locked down until a bridge reset occurs (not the pci express link reset).
424 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.3.1.52 offset fch: exp_phc ? pci express* port hide control(bp:d1:f0, bp:d2:f0) offset: fch attribute: rws default value: 0003h size: 16 bits 13.4 pci express* switch, upstream/downstream port (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) enhanced the enhanced pci express configuration access mechanism utilizes a flat memory- mapped address space to access device configuration registers. in this case, the memory address determines the configuration register accessed and the memory data returns the contents of the addressed register. refer to the section 7.9 in the pci express* base specification, revision 1.0a for details. 13.4.1 configuration registers 13.4.1.1 offset 100h: exp_capid? pci express* advanced error capability identifier register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 100 ? 103h attribute: ro default value: 00010001h size: 32 bits note: this register stores the pci express extended capability id value. bits type reset description 15:8 rws 0h reserved 7 rws 0h hide pci express downstream integrated lan port 0: configuration space visible 1: configuration space hidden 6 rws 0h hide pci express downstream port 2 0: configuration space visible 1: configuration space hidden 5:2 rws 0h reserved 1rws1hreserved 0rws1hreserved bits type reset description 31:20 ro 000h next pci express extended capability pointer: this is the last capability 19:16 ro 1h capability version number: pci express advanced error reporting extended capability version number. 15:0 ro 0001h pci express extended capability id (exp_xcapid): pci express extended capability id indicating advanced error reporting capability.
intel ? 631xesb/632xesb i/o controller hub datasheet 425 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.4.1.2 offset 104h: errunc_sts? pci express* uncorrectable error status register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 104 ? 107h attribute: rwcs, ro default value: 0000h size: 32 bits this register reports error status of individual errors generated on the pci-x bus interface. an individual error status bit that is set to a 1 indicates that a particular error occurred; software may clear an error status by writing a 1 to the respective bit. refer to section 10 of the pci express* to pci/pci-x* bridge specification revision 1.0 for more details. 13.4.1.3 offset 108h: errunc_msk? pci express* uncorrectable error mask register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 108 ? 10bh attribute: rwcs, ro default value: 0000h size: 32 bits bits type reset description 31:21 ro 0 reserved. 20 rwcs 0 unsupported request error status: set by pci express switch whenever an unsupported request is detected on pci express including those that master abort on the switch or signaled by the shpc (on write data parity errors ? config and mem) 19 ro 0 ecrc check: pci express switch does not do ecrc check and this bit is never set. 18 rwcs 0 malformed tlp: pci express switch sets this bit when it receives a malformed tlp. header logging is done. 17 rwcs 0 receiver overflow: pci express switch would set this if receive buffers overflow 16 rwcs 0 unexpected completion: pci express switch sets this bit whenever it receives a completion with a requestor id that does not match or when it receives a completion with a matching requestor id but an unexpected tag field. pci express switch logs the header of the unexpected completion 15 rwcs 0 completer abort: pci express switch sets this bit and logs the header associated with the request when shpc signals a completer abort. pci express switch logs the header. 14 rwcs 0 completion timeout: pci express switch sets this bit when inbound memory / config / i/o reads do not receive completions within 16-32ms. 13 rwcs 0 flow control protocol error status: pci express switch sets this bit when there is a flow control protocol error detected 12 rwcs 0 poisoned tlp received: pci express switch sets this bit when a poisoned tlp is received from pci express. note that internal queue errors in the j and b unit s are not covered by this bit. pci express switch logs the header of the poisoned tlp packet. 11:5 ro 0 reserved. 4rwcs 0 data link protocol error: pci express switch sets this bit when there is a data link protocol error detected. 3:1 ro 0 reserved. 0 undefined undefined undefined ? the value read from this bit is undefined. in previous versions of this specification, this bit was used to indicate a link training error. system software must ignore the value read from this bit. system software is permitted to write any value to this bit. bits type reset description 31:21 ro 0 reserved. 20 rws 0 unsupported request error mask 19 ro 0 ecrc check n/a to pci express switch mask
426 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.4.1.4 offset 10ch: errunc_sev? pci express* uncorrectable error severity register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 10c ? 10fh attribute: rwcs, ro default value: 00061010h size: 32 bits 18 rws 0 malformed tlp mask 17 rws 0 receiver overflow mask 16 rws 0 unexpected completion mask 15 rws 0 completer aborted mask 14 rws 0 completion timeout mask 13 rws 0 flow control protocol error status mask 12 rws 0 poisoned tlp received mask 11:5 ro 0 reserved. 4 rws 0 data link protocol error mask. 3:1 ro 0 reserved 0 undefined undefined undefined ? the value read from this bit is undefined. in previous versions of this specification, this bit was used to indicate a link training error. system software must ignore the value read from this bit. system software is permitted to write any value to this bit. bits type reset description bits type reset description 31:21 ro 0 reserved. 20 rws 0 unsupported request error severity 19 ro 0 ecrc check: n/a to pci express switch severity 18 rws 1 malformed tlp severity 17 rws 1 receiver overflow severity 16 rws 0 unexpected completion severity 15 rws 0 completer abort severity 14 rws 0 completion timeout severity 13 rws 1 flow control protocol error severity 12 rws 0 poisoned tlp received severity 11:5 ro 0 reserved. 4 rws 1 data link protocol error severity 3:1 ro 0 reserved 0 undefined undefined undefined ? the value read from this bit is undefined. in previous versions of this specification, this bit was used to indicate a link training error. system software must ignore the value read from this bit. system software is permitted to write any value to this bit.
intel ? 631xesb/632xesb i/o controller hub datasheet 427 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.4.1.5 offset 110h: errcor_sts? pci express* correctable error status register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 110 ? 113h attribute: rwcs, ro default value: 00000000h size: 32 bits 13.4.1.6 offset 114h: pci expresserrunc_msk? pci express* correctable error mask register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 114 ? 117h attribute: rws, ro default value: 00000000h size: 32 bits this register masks the reporting of individual pci express correctable errors via a pci express error message. there is one mask bit per error. note that the status bits are set in the status register irrespective of whether the mask bit is on or off. the mask bit also affects the header log for the pci express transaction. if the mask bit is on, the header is not logged and no error message is generated on the pci express bus. 13.4.1.7 offset 118h: adverr_ctl? advanced error control and capabilities register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 118 ? 11bh attribute: rws, ro default value: 00000000h size: 32 bits this register masks the reporting of individual pci express correctable errors via a pci express error message. there is one mask bit per error. note that the status bits are set in the status register irrespective of whether the mask bit is on or off. the mask bit also affects the header log for the pci express transaction. if the mask bit is on, the header is not logged and no error message is generated on the pci express bus. bits type reset description 31:13 ro 0 reserved. 12 rwcs 0 replay timer timeout status: 11:9 ro 0 reserved. 8rwcs 0 replay number rollover status: the pci express switch sets this bit when the replay number rolls over from 11 to 00. 7rwcs 0 bad dllp status: the pci express switch sets this bit on crc errors on dllp. 6rwcs 0 bad tlp status: the pci express switch sets this bit on crc errors on tlp. 5:1 ro 0 reserved. 0rwcs 0 receiver error: the pci express switch sets this bit when the physical layer detects a receiver error. bits type reset description 31:13 ro 0 reserved. 12 rws 0 replay timer timeout mask: the pci express switch sets this bit if replay timer timeout happened. 11:9 ro 0 reserved. 8rws 0 replay number rollover mask: the pci express switch sets this bit when the replay number rolls over from 11 to 00. 7rws 0 bad dllp mask: the pci express switch sets this bit on crc errors on dllp. 6rws 0 bad tlp mask: the pci express switch sets this bit on crc errors on tlp. 5:1 ro 0 reserved. 0rws 0 receiver error mask: pci express switch sets this bit when the physical layer detects a receiver error.
428 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.4.1.8 offset 11ch: exphdrlog? pci express* transaction header log register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 11c ? 12bh attribute: rwcs, ro default value: 0000h size: 128 bits. 13.4.1.9 offset 170h: pexh_sts ? intel ? 631xesb/632xesb i/o controller hub pci express* to pci-x bridge strap status register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 170 ? 171h attribute: ro default value: xxxxh size: 16 bits this register indicates the status of various power-on straps on intel ? 631xesb/ 632xesb i/o controller hub pci express switch and bridge. bits type reset description 31:9 ro 0 reserved. 8ro 0 ecrc check enable: the pci express switch does not support ecrc check and this bit is reserved. 7ro 0 ecrc check capable: the pci express switch is not ecrc check capable. 6ro 0 ecrc check enable: the pci express switch is not ecrc check capable. 5ro 0 ecrc generation capable: the pci express switch cannot generate ecrc. 4:0 ros 0 the first error pointer ? identifies the bit position of the first error reported in the uncorrectable error status register. this register rearms itself (which does not change its current value) once the error status bit pointed to by the pointer is cleared by software by writing a 1 to that status bit. bits type reset description 127:0 ros 0 header of the pci express packet in error. once an error is logged in this register, it remains locked for further error loggings until the time the software clears the status bit that cause the header log, that is, the error pointer is rearmed to log again. bits type reset description 15 ro 0 reserved. 14 ro strap reserved. 13:12 ro 0 reserved. 11:8 ro strap pci slot count (psc): reflects the value of the hpxslot[3:0]# pins sampled at the rising edge of pwrok. 7:1 ro strap manageability address (ma): these 7 bits represent the address the smbus slave port will respond to when an access is attempted. this register will have the following value: bit value 7 ?1? 6 ?1? 5 smbus[5] 4 ?0? 3 smbus[3] 2 smbus[2] 1 smbus[1] 0rostrap p133en status (133en_sts): reflects the status of the px133en pin sampled at rising edge of pwrok. this serves as a dashboard for the bios.
intel ? 631xesb/632xesb i/o controller hub datasheet 429 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.4.1.10 offset 172h: pxb_strap ? intel ? 631xesb/632xesb i/o controller hub pci express* upstream and downstream strap status register (bm:d0:f0,bp:d0:f0,bp:d1:f0,bp:d2:f0) offset: 172h attribute: ro default value: xxh size: 8 bits this register resides in the upstream port only. for the downstream ports these bits are disabled. this register stores the switch port strap values captured at power-up-reset from the smbus pins. 13.5 i/oxapic interrupt controller registers (bm:d0:f1) the intel ? 631xesb/632xesb i/o controller hub contains one i/oxapic controllers which resides on the bus m: device 0: function 1. this integrated i/oxapic supports only fsb interrupt delivery. interrupts are delivered as interrupt message transactions on the processor system bus. 13.5.1 pci configuration space registers bits type reset description 7:3 ro 0 reserved. 2rostrap south strap - smbus[2] 0: one pci express south x8 port (option may not exist, depending on sku). 1: two pci express south x4 ports (por t e1 and e2, where port e2 could be fused off depending on the sku). when the pci express to pci-x bridge south ports are put in x8 mode, pe1 lanes 3:0 stay the same, and pe2 lanes 3:0 become pe1 lanes 7:4. 1:0 ro strap north straps - smbus[1:0] 00: one pci express north x8 port 01: reserved 10: two pci express north x4 ports relative to the single x8 port, -- lanes 3:0 no change. -- lanes 7:4 become new x4 port, direct-connect to lan. 11: reserved table 13-2. configuration register summary (sheet 1 of 2) address offset symbol register name default access 00?01h vid vendor id register 8086h ro 02?03h did device id register 3504h -3507h ro 04?05h pcicmd command register 0000h rw, ro 06?07h pcists status register 0030h rwc, ro 08h rid revision id register 00h ro 09?0bh cc class code register 080020h ro 0ch cls cache line size register 00h rw 0dh plt primary latency timer register 00h rw 0eh htype header type register 00h ro
430 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.1 offset 00h: vid-vendor id register (bm:d0: f1) offset: 00-01h attribute: ro default value: 8086h size: 16 bits this register contains the vendor identifiers. 13.5.1.2 offset 02h: did?device id register (bm:d0:f1) offset: 02?03h attribute: ro default value: 3504h - 3507h (function 1) size: 16 bits 10?13h mbar memory base address register see register desc. rw, ro 2c-2fh ssid subsystem identifier register 00h rwo 34h capp capabilities pointer register 44h rwo 40-41h abar alternate base address register 00h rw,ro 44h exp_capid pci express capability identifier register 10h ro 45h exp_nxtp next item pointer register 5ch ro 46-47h exp_cap pci express capability register 0001h ro 48-4bh exp_devcap pci express device capabilities register 00000001h ro 4c-4dh exp_devcntl pci express device control register 0020h rw, ro 4e-4f exp_devsts pci express device status register 0000 rwc, ro 50-53h exp_lcap pci express link capabilities register 0003e081h ro 54-55h exp_lcntl pci express link control register 0000h rw, ro 56-57h exp_lsts pci express link status register 0000 ro 6ch pm_capid power management capability identifier register 00x0oh ro 6dh pm_nxtptr power management next pointer 00 ro 6e-6fh pm_cap power management capabilities register 0002h ro 70-71h pm_cntlsts power management control and status register 0000h rw,ro table 13-2. configuration register summary (sheet 2 of 2) address offset symbol register name default access bits type reset description 15:0 ro 8086h vendor id (vid): 16-bit field which indicates that intel is the vendor bits type reset description 15:0 ro 3504h ? 3507h depending on sku. device id (did): device number of the intel intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1).
intel ? 631xesb/632xesb i/o controller hub datasheet 431 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.3 offset 04h: pcicmd?pci command register (bm:d0:f1) offset: 04?05h attribute: rw, ro default value: 0000h size: 16 bits bits type reset description 15:9 ro 0 reserved. 8rw 0 serr enable (see): controls the enable for pci-compatible serr reporting on the pci express interface (along with the status register (sts reg, offset 06h, bit 14). 0 = disable serr reporting 1 = enable serr reporting note that this bit does not affect the setting of the pci express error bits in the pci express capability structure. 7ro 0 wait cycle control (wcc): reserved. 6rw 0 parity error response (per): controls the response to data parity errors forwarded from the pci express interface and peer pci on read completions. 0 = disable. ignore errors on the pci express interface and the peer-pci interface. 1 = enable. report read completion data parity errors on the pci e interface and set the master data parity detected (mdpd) bit in the status register. note that this bit does not affect the setting of the pci express error bits in the pci express capability structure. 5ro 0 vga palette snoop (vga_ps): reserved. 4ro 0 memory write and invalidate (mwie): the intel ? 631xesb/632xesb i/o controller hub does not generate memory write and invalidate transactions, as the pci express interface does not have a corresponding transfer type. 3ro 0 special cycle enable (sce): reserved. 2rw 0 bus master enable (bme): controls the i/oxapic's ability to act as a master on pci express when forwarding system bus interrupt. note that this bit does not stop the intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) from issuing completions on pci express 0 = disable. don?t respond to any memory transactions on the pci interface that target the pci express interface. 1 = enable.requests other than memory or i/o requests are not controlled by this bit. 1rw 0 memory space enable (mse): controls the i/oxapic's response as a target to memory accesses on the pci express interface that address the i/oxapic. 0 = these transactions are master aborted on the pci express interface. 1 = to allowed memory transaction from pci to be passed to the pci express. 0ro 0 i/o space enable (iose): reserved
432 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.4 offset 06h: pcists?status register (bm:d0:f1) offset: 06?07h attribute: rwc, ro default value: 0010h size: 16 bits 13.5.1.5 offset 08h: rid?revision id register (bm:d0:f1) offset: 08h attribute: ro default value: 00h size: 8 bits bits type reset description 15 rwc 0 detected parity error (dpe): 0 = software clears this bit by writing a 1 to it. 1 = data parity error on the pci express bus interface or peer pci segment is detected. this bit gets set even if the parity error response (bit 6 of the command register) is not set. indicates that a parity error was detected on cycles targeting the i/oxapic. 14 rwc 0 signaled system error (sse): set whenever an err_fatal or err_nonfatal message is sent on pci express for data parity errors to i/ oxapic configuration or memory space and the serr enable bit (bit 8 in pcicmd) is set. this bit is also set on error messages generated on pci express for errors not specific to a function. 0 = these transactions are master aborted on the pci express interface. 1 = the intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) is allowed to accept cycles from pci to be passed to the pci express interface. 13 ro 0 received master-abort (rma): reserved 12 ro 0 received target-abort (rta): reserved 11 rwc 0 1 = signaled target abort (sta): this bit reports the signaling of a target-abort termination by the intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) when it responds as the target of a transaction on the pci/pci-x interface or when the pci express to pci-x bridge signals a pci-x split completion message with target abort. 0 = target abort not signaled on the pci/pci-x interface. 1 = target abort signaled on the pci/pci-x interface. software clears this bit by writing a 1 to it. 10:9 ro 0 devsel# timing (dvt): a value of 0 indicates that fast decode is performed by the i/oxapic. 8 ro 0 master data parity error (mdp): reserved 7ro 0 fast back-to-back transactions capable (fbc): reserved as not fast back-to-back capable. 6ro 0reserved. 5ro 0 66 mhz enable (66en): a value of 1 indicates that the i/oxapic is 66 mhz capable 4ro 1 capabilities list (capl): indicates that the pci express to pci-x bridge contains the capabilities pointer in the bridge. offset 34h (capabilities list pointer - capp) indicates the offset for the first entry in the linked list of capabilities. default = 1. 3:0 ro 0 reserved. bits type reset description 7:0 ro a0-00h a1-00h revision id (revid): this indicates the stepping of the ioxapic of the pci express-to-pci-x bridge. ?00/04/08? indicate the a-0/b-0/c-0 steppings
intel ? 631xesb/632xesb i/o controller hub datasheet 433 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.6 offset 09h: cc?class code register (bm:d0:f1) offset: 09?0bh attribute: ro default value: 080020h size: 24 bits this contains the class code, sub class code, and programming interface for the device. 13.5.1.7 offset 0ch: cls?cache line size register (bm:d0:f1) offset: 0ch attribute: rw default value: 00h size: 8 bits this indicates the cache line size of the system. 13.5.1.8 offset 0dh: mlat?master latency timer register (bm:d0:f1) offset: 0dh attribute: rw default value: 00h size: 8 bits this register does not apply to the pci express interface. 13.5.1.9 offset 0eh: htyp?header type register (bm:d0:f1) offset: 0eh attribute: rw default value: 81h size: 8 bits this register is used to indicate the layout for bytes 10h through 3fh of the device?s configuration space. 13.5.1.10 offset 0fh: bist?built-in self-test register (bm:d0:f1) offset: 0fh attribute: rw default value: 81h size: 8 bits this register is used to indicate the layout for bytes 10h through 3fh of the device?s configuration space. bits type reset description 23:16 ro 08h base class code (bcc): the value of '08h' indicates that this is a generic system peripheral. 15:8 ros 0h sub class code (scc): the value of '00h' indicates that this generic peripheral is an interrupt controller. 7:0 ro 20h programming interface (pif): the value of '20h' indicates that this interrupt peripheral is an i/oxapic. bits type reset description 7:0 ro 0 cache line size (cls): reserved. bits type reset description 7:0 ro 0 latency time: reserved. bits type reset description 7:0 ro 00h header type (htype): this indicates that it is a type "00" header (normal pci device) and that it is part of a multi-function device. bits type reset description 7:0 ro 00h built-in self-test (bist): reserved.
434 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.11 offset 10h: mbar?memory base register (bm:d0:f1) offset: 10-13h attribute: rw, ro default value: 00000000h size: 32 bits this register contains the i/oxapic base address for the i/oxapic memory space. 13.5.1.12 offset 2ch: ss?subsystem identifier register (bm:d0:f1) offset: 2c-2fh attribute: rw default value: 00000000h size: 32 bits this register is initialized to logic 0 by the assertion of pxpcirst#. this register can be written only once after pxpcirst# deassertion. 13.5.1.13 offset 34h: capp?capabiliti es pointer register (bm:d0:f1) offset: 34h attribute: ro default value: 44h size: 8 bits 13.5.1.14 offset 40h: abar?alternate base address register (bm:d0:f1) offset: 40-41h attribute: rw,ro default value: 0000h size: 16 bits this register contains an alternate base address in the legacy i/oxapic range. this range can co-exist with the bar register range. this range is needed for operating systems that support the legacy i/oxapic mapping, but do not yet support remapping the i/oxapic anywhere in the 4gb address space. bits type reset description 31:12 rw 0 address (addr): these bits determine the base address of the i/oxapic. 11:4 ro 0 reserved. 3 ro 0 prefetchable (pf): indicates that the bar is not pre-fetchable. 2:1 ro 10b location (loc): ?00? indicates that the address can be located anywhere in the 32-bit address space 0 ro 0 memory space indicator (memsi): this bit is a read-only 0 indicating that this base address register maps into memory space. bits type reset description 31:16 rwos 0 subsystem id (ssid): write once register for sub-system id. 15:0 rwos 0 subsystem vendor id (ssvid): write once register for holding the subsystem vendor id. bits type reset description 7:0 ro 44 capabilities pointer (capp): indicates the presence of the pci express capability list item. bits type reset description 15 rw 0 enable (en): when set, the range fecx_yz00 to fecx_yzff is enabled as an alternate access method to the i/oxapic registers. bits 'xyz' are defined below. 14:12 ro 0 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 435 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.15 offset 44h: exp_capid?pci express* capability identifier register (bm:d0:f1) offset: 44h attribute: ro default value: 10h size: 8 bits 13.5.1.16 offset 45h: exp_nxtp?pci express* next pointer register (bm:d0:f1) offset: 45h attribute: ro default value: 6ch size: 8 bits 13.5.1.17 offset 46: exp_cap?pci express* capability register (bm:d0:f1) offset: 46-47h attribute: ro default value: 0001h size: 16 bits this register carries the version number of the capability item and other base information contained in the pci express capability structure. 11:8 rw 0 base address [19:16] (xbad) : these bits determine the high order bits of the i/o apic address map. when a memory address is recognized and matches fecx_yz00 to fecx_yzff, it will respond to the cycle and access the internal i/o apic. 7:4 rw 0 base address [15:12] (ybad): these bits determine the low order bits of the i/o apic address map. when a memory address is recognized and matches fecx_yz00 to fecx_yzff, it will respond to the cycle and access the internal i/o apic. 3:0 rw 0 base address [11:8] (zbad): these bits determine the low order bits of the i/o apic address map. when a memory address is recognized and matches fecx_yz00 to fecx_yzff, it respond to the cycle and access the internal i/o apic. bits type reset description bits type reset description 7:0 ro 10h pci express capability id (pecid): indicates pci express capability bits type reset description 7:0 rw 6ch next pointer (mnptr): points to the next capabilities list pointer, which is the msi capability. bits type reset description 15:14 ro 0 reserved. 13:9 ro 0 interrupt message number (imn): not relevant for i/oxapic. 11:8 ro 0 slot implemented (sloti): not relevant for i/oxapic. 7:4 ro 0 device/port type (dpt): indicated pci express end-point device. 3:0 ro 01h version number (vn): indicates pci express capability structure version number.
436 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.18 offset 48h: exp_dcap?pci express* device capability register (bm:d0:f1) offset: 48-4bh attribute: ro default value: 00000001h size: 32 bits this register identifies pci express device specific capabilities. 13.5.1.19 offset 4ch: devcntl?device control register (bm:d0:f1) offset: 4c-4dh attribute: rw, ro default value: 0020h size: 16 bits this register controls pci express device specific (intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1)) parameters bits type reset description 31:28 ro 0 reserved. 27:26 ro 0 captured slot power limit scale (cspls): specifies the scale used for the slot power limit value.range of values: 00b = 1.0x 01b = 0.1x 10b = 0.01x 11b = 0.001x this value is set by the set_slot_power_limit message. in combination with the slot power limit value, specifies the upper limit on power supplied by slot. power limit (in watts) calculated by mult iplying the value in this field by the value in the slot power limit value field. hard wired to 0. 25:18 ro 0 captured slot power limit value (csplv): in combination with the slot power limit scale value, specifies the upper limit on power supplied by slot. power limit (in watts) calculated by mult iplying the value in this field by the value in the slot power limit scale field. this value is set by the set_slot_power_limit message. hard wired to 0. 17:12 ro 0 reserved. 11:9 ro 0 endpoint l1s acceptable latency (el1al): intel ? 6700pxh 64-bit pci hub does not support l1 link state power management (lspm). 8:6 ro 0 endpoint l0s acceptable latency (el0al): intel ? 6700pxh 64-bit pci hub wants the least latency possible out of l0s 5ro 0 extended tag field supported (etfs): intel ? 6700pxh 64-bit pci hub supports only a 5-bit tag. 4:3 ro 0 phantom functions supported (pfs): intel ? 6700pxh 64-bit pci hub does not support phantom functions. 2:0 ro 001b max_ payload_size supported (mpss): this field is set to a value of 001b, signifying that intel ? 6700pxh 64-bit pci hub supports a maximum payload size of 256 byte packets. bits type reset description 15 ro 0 reserved. 14:12 ro 0 max_read_request_size (mrrs): does not apply to the i/oxapic. 11 ro 0 enable no snoop (ens): this does not apply to intel ? 6700pxh 64-bit pci hub since it does not set the ns bit on msi transactions it generates. 10 ro 0 auxiliary (aux) power pm enable (auxppme): intel ? 6700pxh 64-bit pci hub ignores this bit since it does not support auxiliary power. 9 ro 0 phantom function enable (pfe): intel ? 6700pxh 64-bit pci hub ignores this bit since it does not support phantom functions. 8 ro 0 extended tag field enable (etfe): intel ? 6700pxh 64-bit pci hub ignores this bit since it supports only 5-bit tag.
intel ? 631xesb/632xesb i/o controller hub datasheet 437 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.20 offset 4eh: dsts?device status register (bm:d0:f1) offset: 4e-4fh attribute: rwc, rwo default value: 00h size: 16 bits this register provides information on spec ific parameters of a pci express device. 7:5 rw 001b max_ payload_size (mps): does not affect the i/oxapic since it does not do writes greater than a dword. 4 ro 0 enable relaxed ordering (ero): not applicable or used by the i/oxapic. 3 rw 0 unsupported request reporting enable (urre): this bit enables reporting of unsupported requests when set to a 1. it is used by the i/oxapic to enable reporting of err_fatal or err_nonfatal messages on the pci express interface for reporting unsupported requests errors, such as data parity errors on writes to the i/oxapic (configuration or memory space). refer to section 6.2 of the pci express base specification revision 1.0a for further details. 2 rw 0 fatal error reporting enable (fere): this bit controls reporting of fatal errors. used by the i/oxapic to gate the generation of the err_fatal message on data parity errors to it: 0 = disable. 1 = report fatal errors. refer to section 6.2 of the pci express base specification, revision 1.0a for further details. 1 rw 0 non-fatal error reporting enable (nfere): this bit controls reporting of non- fatal errors. used by i/oxapic to gate the generation of the err_nonfatal message on data parity errors to it. 0 = disable. 1 = report non-fatal errors. refer to section 6.2 of the pci express base specification, revision 1.0a for further details. 0 rw 0 correctable error reporting enable (cere): this bit controls reporting of correctable errors. when set to ?1?, the intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) is enabled to generate err_corr message on pci express. not used by i/oxapic in normal operation. 0 = disable. 1 = report correctable errors. bits type reset description bits type reset description 15:6 ro 0 reserved. 5 ro 0 transactions pending (tp): reserved. 4 ro 0 aux power detected (auxpd): intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) does not support aux power and hence this bit is reserved. 3ro 0 unsupported request detected (urd): this bit indicates that intel ? 6700pxh 64-bit pci hub received an unsupported request. the i/oxapic will set this bit whenever it receives a configuration or memory write with bad parity. it is also set on link unsupported request errors that are not specific to any function within intel ? 6700pxh 64-bit pci hub. 2rwc 0 fatal error detected (fed): the i/oxapic does not set this bit on its own, but rather it is set on link fatal errors. 1rwc 0 non-fatal error detected (nfed): the i/oxapic sets this bit whenever it detects a write to i/oxapic (configuration or memory space) with bad data parity. this bit is also set on link uncorrectable errors that are not specific to any functions. 0rwc 0 correctable error detected (ced): the i/oxapic does not set this bit on its own, but rather it is set on link correctable errors.
438 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.21 offset 50h: lcap?link capabilities register (bm:d0:f1) offset: 50-53h attribute: ro default value: 0003e081h size: 32 bits this register identifies pci express link specific capabilities. 13.5.1.22 offset 54h: lctl?link control register (bm:d0:f1) offset: 54-55h attribute: rw; ro default value: 0000h size: 16 bits this register controls pci express link specific parameters. bits type reset description 31:24 ro 0 port number (pnum): not applicable, reserved to zero. 23:18 ro 0 reserved. 17:15 ro 0 l1 exit latency (l1xl) : l1 transition is not supported. 14:12 ro 0 l0 exit latency (l0xl): l0s exit latency: the value in these bits is influenced by the pci reference clock configuration in intel ? 631xesb/ 632xesb i/o controller hub ioxapic (bm:d0:f1), since the reference clock is configured as a common clock. because it is a common clock configuration, the common clock configuration bit (ccc, bit 6) in the link control register (lctl, offset 54h) is set to a 1. the mapping is shown below: bit 6 pci express link control link capabilities bits 14:12 0 110b = 2-4s. 1 010b = 128ms to less than 256ms 11:10 ro 01 active state link pm support (aslpms): indicates the level of active state power management supported on the given pci express link. the pci-sig defined encodings are as follows: 01 enters l0s per the specified requirements for l0s entry. 9:4 ro 8h maximum link width (mlw): intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) supports a maximum pci express link width of x8, so this field is set to the pci-sig defined value for x8, which is 001000 b, or 8h. 3:0 ro 0001 maximum link speed (mls): intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) supports a pci express link speed of 2.5 gbps only, so this field is set to the pci-sig defined value for 2.5 gbps, which is 0001b, or 1h. bits type reset description 15:7 ro 0 reserved. 6rw 0 common clock configuration (ccc): this bit when set indicates that ioxapic (bm:d0:f1) and the component it is connected to via the pci express link (located at the opposite en d of this link) are operating with a distributed common reference clock. a value of 0 indicates that this component and the component at the opposite end of this link are operating with an asynchronous reference clock. 0 = intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) and the other pci express component have an asynchronous reference clock. 1 = intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) and the other pci express component share a common clock. note that this bit is used to reflect the proper l0s exit latency value in the exp_lsts register. 5:4 ro 0 reserved.
intel ? 631xesb/632xesb i/o controller hub datasheet 439 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.23 offset 56h lsts?link status register (bm:d0:f1) offset: 56-57h attribute: ro default value: 0041h(x4 link size: 16 bits 0081h(x8 link) this register provides information about pci express link specific parameters. 13.5.1.24 offset 6ch: pm_capid ? power management capability identifier register offset: 6ch attribute: rw default value: 00h size: 8 bits this register provides information about pci express link specific parameters. 13.5.1.25 offset 6dh: pm_nxtptr ? power management next pointer offset: 6dh attribute: rw default value: 00h size: 8 bits this register provides information about pci express link specific parameters. 3 ro 0 read request return parameter control (rrrpc): not used by the i/oxapic. 2ro 0reserved. 1:0 rw 0 active state link pm control (aslpmc): controls the level of active state power management supported on the given pci express link. the pci-sig defined encodings are as follows: 00bdisabled 01bl0s entry supported 10breserved 11bl0s and l1s entry supported these bits enable intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) to enter l0s. not used by i/oxapic in normal operation. bits type reset description bits type reset description 15:10 ro 0 reserved. 9:4 ro 4h or 8h negotiated link width (nlw): indicates the negotiated width of pci express link. defined encodings are: 000100b x4 width 001000b x8 width 3:0 ro 1h link speed (ls): supports a pci express link speed of 2.5 gbps only, so this field is set to the pci-sig defined value for 2.5 gbps, which is 0001b, or 1h. bits type reset description 7:0 ro 01h capability id (cap_id): capability id indicates pci compatible power management. bits type reset description 7:0 ro 0 next pointer (nxtptr): next pointer if non-zero.
440 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.1.26 offset 6eh: pm_cap ? power management capabilities register offset: 6e-6fh attribute: ro default value: 0002h size: 16 bits this register provides information about pci express link specific parameters. 13.5.1.27 offset 70h: pm_cntlsts ? power management control and status register offset: 70-71h attribute: rw default value: 00h size: 16 bits this register provides information about pci express link specific parameters. bits type reset description 15:3 ro 0 reserved. 2:0 ro 10b version (vers): i/oxapic power management implementation is compliant with the pci power management specification revision 1.1 . bits type reset description 15:2 ro 0 reserved. 1:0 rw 0 powerstate (pwr_st): this 2-bit field is used both to determine the current power state of a function and to set the function into a new power state. the i/oxapic supported field values are given below. 00b ? d0 01b ? reserved 10b ? reserved 11b ? d3hot if software attempts to write an unsupported, optional state to this field, the write operation must complete normally on the bus; however, the data is discarded and no state change occurs. when in d3hot state, the i/oxapic responds to configuration transactions only and a transition from d3hot to d0 does not reset the i/oxapic?s registers. also, in d3hot state, the i/oxapic cannot generate any msi. virtual wire interrupts generated by the i/oxapic on behalf of pci agents/shpc are not masked by the d3hot state.
intel ? 631xesb/632xesb i/o controller hub datasheet 441 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.2 i/oxapic direct memory space registers 13.5.2.1 register summary 13.5.2.2 offset 00h: idx?index register offset: 00h attribute: rw default value: 00h size: 8 bits the index register will select which indirect register appears in the window register to be manipulated by software. software will program this register to select the desired i/ oxapic internal register. 13.5.2.3 offset 10h: wnd?window register offset: 10?13h attribute: rw default value: 00000000h size: 32 bits this is a 32-bit register specifying the data to be read or written to the register pointed to by the register select register. this register can be accessed in byte quantities. 13.5.2.4 offset 20h: par?irq pin assertion register offset: 20h attribute: rw, ro default value: 000000xxh size: 32 bits the irq pin assertion register is present to provide a mechanism to scale the number of interrupt inputs into the i/ox apic without increasing the number of dedicated input pins. when a device that supports this interrupt assertion protocol requires interrupt service, that device will issue a write to this register. bits [4:0] written to this register contain the irq number for this interrupt. the only valid values are 0?23. offset address symbol full name default attribute 00h idx index register 00h rw 10?13h wnd window register 00000000h rw 20h par irq pin assertion register 000000xxh rw, ro 40h eoi eoi register 00h rw bits type reset description 7:0 rw 0 index (idx): indirect register to access. bits type reset description 31:0 rw 0 window (wnd): data to be written to the indirect register on writes, and location of register data from the indirect register on reads. bits type reset description 31:5 ro 0 reserved. 4:0 rw xx assertion (par): virtual pin to be asserted (active high). writes to this register are treated with edge triggered semantics regardless of what is programmed in the rdl dword, though the interrupt message is generated directly from the contents of the rdl and rdh dwords.
442 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.2.5 offset 40h: eoi?eoi register offset: 40h attribute: rw default value: 00h size: 8 bits the eoi register is present to provide a mechanism to maintain the level triggered semantics for level-triggered interrupts issued on the parallel bus. when a write is issued to this register, the i/ox apic will check the lower 8 bits written to this register, and compare it with the vector field for each entry in the i/o redirection table. when a match is found, the remote_irr bit for that i/o redirection entry will be cleared. note that if multiple i/o redirection entries, for any reason, assign the same vector for more than one interrupt input, each of those entries will have the remote_irr bit reset to ?0?. 13.5.3 indirect memory space registers 13.5.3.1 register summary to access the indirect memory space, an 8-bit value must be written to the index register, which is a ?pointer? (indirect) to a 32-bit memory location. the 32-bit value in the window register can then be read. 13.5.3.2 offset 00h: id?apic id register offset: 00h attribute: rw, ro default value: 00000000h size: 32 bits the apic id serves as a physical name of the apic. the apic bus arbitration id for the apic is derived from its i/oxapic id. this register is reset to zero on power up reset. bits type reset description 7:0 rw 0h end of interrupt (eoi): vector to be cleared by the eoi. table 13-3. indirect memory space registers summary address offset symbol full name default attribute 00h id apic id register 00000000h rw, ro 01h vs version register 00170020h ro 03h bcfg boot configuration register 00000001h rw, ro 10h rdl[0] redirection table low dword 0 register 00010000h rw, ro 11h rdh[0] redirection table high dword 0 register 00000000h rw, ro 3e rdl[23] redirection table low dword 23 register 00010000h rw, ro 3f rdh[23] redirection table high dword 23 register 00000000h rw, ro 40-ff reserved reserved. 00000000h ro bits type reset description 31:28 ro 0 reserved. 27:24 rw 0 i/oxapic id (apicid): software must program this value before using the i/oxapic. 23:0 ro 0 reserved.
intel ? 631xesb/632xesb i/o controller hub datasheet 443 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.3.3 offset 01h: vs?version register offset: 01h attribute: ro default value: 00178020h size: 32 bits contains information related to this i/oxapic for driver/os/software. 13.5.3.4 offset 03h: bcfg?boot configuration register offset: 03h attribute: rw, ro default value: 00000000h size: 32 bits the boot configuration contains information that is only supposed to be accessed by bios and is not for os use. it contains bits that must be programmed before the os takes control of interrupts. 13.5.3.5 offset 10h, 12h,?, 3eh: rdl?redirection table low dword register offset: 10h,12h,...,3eh attribute: rw, ro default value: 00010000h size: 32 bits the information in this register is sent on the system bus to address a local apic. there is one of these registers for every interrupt. the 1 st interrupt (pin 0) has this entry at offset 10h. the 2 nd interrupt at 12h, 3 rd at 14h, and so forth, until the final interrupt (interrupt 23) at 3eh. bits type reset description 31:24 ro 0 reserved. 23:16 ro 17h maximum redirection entries (max): this is the entry number of the highest entry in the redirection table. it is equal to the number of interrupt inputs minus one. this field is hardwired to 17h to indicate 24 interrupts. 15 ro 1 irq assertion register supported (prq): this bit is set to 1 to indicate that this version of the i/oxapic implements the irq assertion register and allows pci devices to write to it to cause interrupts. 14:8 ro 0 reserved. 7:0 ro 20h version (vs): this identifies the implementation version. this field is hardwired to ?20h? to indicate this is an i/oxapic. bits type reset description 31:1 ro 0 reserved. 0rw 1 delivery type (dt): software sets this bit to 1 to indicate that the delivery mechanism is as a system bus message and not the i/oxapic serial bus. bits type reset description 31:18 ro 0 reserved. 17 rw 0 disable flushing bit (dflush): this bit is maintained for any potential software compatibility, but the intel ? 631xesb/632xesb i/o controller hub ioxapic (bm:d0:f1) will perform no flushing action, regardless of the setting of this bit. 16 rw 1 mask (msk): 0 = an edge or level on this interru pt pin results in the delivery of the interrupt to the destination. 1 = interrupts are not delivered nor held pending. setting this bit after the interrupt is accepted by a local apic has no effect on that interrupt. 15 rw 0 trigger mode (tm): this field indicates the type of signal on the interrupt pin that triggers an interrupt. 0 = edge sensitive. 1 = level sensitive.
444 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.5.3.6 offset 11h, 13h,?, 3fh: rdh?redirection table high register offset: 11h,13h,..,3fh attribute: rw, ro default value: 00000000h size: 32 bits the information in this register is sent on the system bus to address a local apic. there is one of these registers for every interrupt. the 1 st interrupt (pin 0) has this entry at offset 11h. the 2 nd interrupt at 13h, 3 rd at 15h, and so forth, until the final interrupt (interrupt 23) at 3fh. 14 ro 0 remote irr (rirr): this bit is used for level-triggered interrupts; its meaning is undefined for edge triggered interrupts. 0 = eoi message is received from a local apic. 1 = for level triggered interrupts, this bit is set when local apics accept the level interrupt sent by the i/oxapic. it is reset when an eoi message is received from a local apic. 13 rw 0 interrupt input pin polarity (ip): this bit specifies the polarity of each interrupt signal connected to the interrupt pins. 0 = active high. 1 = active low. 12 ro 0 delivery status (ds): this field contains the current status of the delivery of this interrupt. it is read only. writes to this bit have no effect. 0 = idle; no activity for this interrupt. 1 = pending - interrupt has been inject ed, but delivery is held up due the inability of the receiving apic unit to accept the interrupt at this time. 11 rw 0 destination mode (dstm): this field determines the interpretation of the destination field. 0 = physical; destination apic id is identified by rdh bits [59:56]. 1 = logical; destination is identified by matching bits [63:56] with the logical destination in the destination format register and logical destination register in each local apic. 10:8 rw 0 delivery mode (delm): this field specifies how the apics listed in the destination field should act upon reception of the interrupt. certain delivery modes will only operate as intended when used in conjunction with a specific trigger mode. these encodings are described in more detail in each serial message. the encodings are: 000 = fixed: trigger mode can be edge or level. 001 = lowest priority: trigger mode can be edge or level. 010 = smi/pmi: not supported. 011 = reserved. 100 = nmi: not supported. 101 = init: not supported. 110 = reserved. 111 = extint: not supported. 7:0 rw 0 vector (vct): this field contains the interrupt vector for this interrupt. values range between 10h and feh. bits type reset description bits type reset description 31:24 rw 0 destination id (did): this information is transferred in bits [19:12] of the address. 23:16 rw 0 extended destination id (edid): these bits are sent to a local apic in system bus delivery mode. these are bits [11:4] of the address. 15:0 ro 0 reserved.
intel ? 631xesb/632xesb i/o controller hub datasheet 445 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6 pci express* to pci-x* bridges (bm:d0:f3) 13.6.1 configuration registers the bridge configuration space follows the standard pci-to-pci bridge configuration space format. ta bl e 1 3 - 4 shows the pci express to pci-x bridge configuration registers and their address byte offset values. note: registers that are not shown should be treated as reserved. table 13-4. configuration register summary (sheet 1 of 3) address offset symbol register name default access 00?01h vid vendor id register 8086h ro 02?03h did device id register 0320h ro 04?05h pcicmd command register 0000h rw, ro 06?07h pcists status register 0010h rwc, ro 08h rid revision id register 04h ro 09?0bh cc class code register 060400h ro 0ch cls cache line size register 00h rw 0dh plt primary latency timer register 00h rw 0eh htype header type register 81h ro 10?17h shpc_bar shpc base address register see register desc. rw, ro 18h pbn primary bus number register 00h rw 19h scbn secondary bus number register 00h rw 1ah sbbn subordinate bus number register 00h rw 1bh slt secondary latency timer register 00h (pci) 40h (pci-x) rw 1ch iob i/o base register 00h rw, ro 1dh iol i/o limit register 00h rw, ro 1e?1fh secsts secondary status register 02a0h rwc,ro 20?21h mb memory base register 0000h rw 22-23h ml memory limit register 0000h rw 24?25h pmb prefetchable memory base register 0001h rw, ro 26?27h pml prefetchable memory limit register 0001h rw, ro 28?2bh pb_upper prefetchable base upper 32 bits register 00000000h rw 2c?2fh pl_upper prefetchable limit upper 32 bits register 00000000h rw 30?31h iobu16 i/o base upper 16 bits register 0000h ro 32?33h iolu16 i/o limit upper 16 bits register 0000h ro 34h capp capabilities pointer register 44h ro 3ch intrl interrupt line information register 00h rw 3dh intrp interrupt pin information register 0100h ro 3e?3fh bridge_cnt bridge control register 0000h rw, rwc, ro
446 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 40?41h cnf pci express to pci-x bridge configuration register check register desc rw, ro 42h mtt multi-transaction timer register 00h rw, ro 43h pclkc pci clock control register ffh rw, ro 44h pci express_capid pci express capability identifier register 10h ro 45h pci express_nxtp pci express next item pointer register 5ch ro 46?47h pci express_cap pci express capability designator register 0071h ro 48?4b pci express_dcap pci express device capabilities register 0001h rw, ro 4c?4d pci express_dctl pci express device control register 2000h rw, ro 4e-4f pci express_dsts pci express device status register 0 rwc, ro 50-53h pci express_lcap pci express link capabilities register 000b0211h ro 54-55h pci express_lctl pci express link control register 0000h rw, ro 56?57h pci express_lsts pci express link status register 0000h ro 5ch msi_capid pci express msi capability identifier register 05h ro 5dh msi_nxtp pci express msi next item pointer register 6ch ro 5e?5fh msi_mc pci express msi message control register 0080h rw, ro 60?67h msi_ma pci express msi message address register 00000000h rw, ro 68?69h msi_md pci express msi message data register 0000h rw 6ch pcixpm_capid power management capability register 01h ro 6dh pcixpm_nxtp power management next item pointer register d8h (hp) 00h (non-hp) ro 6e?6fh pcixpm_pmc power management capabilities register 402ah (hp) 002ah (non-hot-plug) ro 70?71h pcixpm_pmcsr power management control and status register 0000h rwc, ro 72h pcixpm_bse power management bridge support extensions register 00h ro 73h pcixpm_data power management data register 00h ro 78h shpc_capid shpc capability identifier register 0ch ro 79h shpc_nxtp shpc next item pointer register 00h ro 7ah shpc_dwsel shpc dword select register 00h ro 7bh shpc_sts shpc status register 00h ro 7c?7fh shpc_dword shpc data register 00000000h rw d8h px_capid pci-x capabilities identifier register 07h ro d9h px_nxtp pci-x next pointer register d0h ro da?dbh px_ssts pci-x secondary status register 0003h rwc, ro table 13-4. configuration register summary (sheet 2 of 3) address offset symbol register name default access
intel ? 631xesb/632xesb i/o controller hub datasheet 447 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.1 offset 00h: vid?vendor id register (bm:d0:f3) offset: 00?01h attribute: ro default value: 8086h size: 16 bits dc-dfh px_bsts pci-x bridge status register 00030000h (function 0) 00030002h (function 2) ro e0?e3h px_ustc pci-x upstream split transaction control register 0000ffffh rw, ro e4?e7h px_dstc pci-x downstream split transaction control register 0000ffffh rw, ro e8?e9h ras_sts ras status register 0000h rwc ea?ebh ras_cmd ras command register 0000h rw ec?edh arb_cntrl arbiter control register 0180h rw f4?f5h pxb_sts pci express to pci-x bridge status register strap ro 100-103h pci express_capid pci express capability identifier register 30000000 ro 12c-12dh pcixerrunc_sts pci express uncorrectable error status register 0000h rwc 130-133h pcixerrunc_msk uncorrectable pci-x error mask register 000017a8h rws,ro 134-135h sec_unc_errsev secondary uncorrectable error severity register 2340h rws,ro 138-13bh pcixerrunc_ptr uncorrectable error pointer register 00000000h ros,ro 13c-143h pcixhdlog pci-x uncorrectable transaction header log register 0000h ros 14c-153h pcixdlog pci-x uncorrectable/correctable data error log register 000000000000 0000h ros 154-155h pcixerrlogctl other pci-x error logs and control register 00000000h rwcs,ro s,ro 300-303h pwrbudgtcap power budgeting enhanced capability header register 00010004h ro 304h pwrbudgtdsel power budgeting data select register 00h rw 308-30bh pwrbudgtdata power budgeting data register 00000000h ro 30ch pwrbudgt power budgeting register 0h ro,rwo 314h pwrbudgtinfo0 power budgeting register 0 00000000h ro,rw table 13-4. configuration register summary (sheet 3 of 3) address offset symbol register name default access bits type reset description 15:00 ro 8086h vendor id (vid): 16-bit vendor id assigned to intel vid=8086h.
448 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.2 offset 02h: did?device id register (bm:d0:f3) offset: 02?03h attribute: ro default value: 0320h (function 0) size: 16 bits 0321h (function 2) 13.6.1.3 offset 04h: pcicmd?pci command register (bm:d0:f3) offset: 04?05h attribute: rw, ro default value: 0000h size: 16 bits bits type reset description 15:0 ro 350ch ? 350fh depending on sku. device id (did): device number of the intel ? 631xesb/632xesb i/o controller hub pci express to pci-x bridge. bits type reset description 15:11 ro 0 reserved. 10 rw 0 interrupt mask (intmask): this bit disables the shpc from asserting irq[23]# wired to the i/oxapic. this bit is valid only when the msi is disabled; that is, the msi enable bit (bit 0) in the msc_mc register (offset 5eh) is a zero. a value of 0 for this bit enables the assertion of its irq[23]# signal to the i/oxapic. a value of 1 disables the assertion of its irq[23]# signal. if irq[23]# is already asserted when this bit is set, it must be de-asserted. 9ro 0 fast back-to-back transactions enable (fbte): this bit has no meaning on the pci express interface. it is hardwired to ?0?. 8rw 0 serr enable (see): controls the enable for pci-compatible serr reporting on the pci express interface (along with the status register (sts reg, offset 06h, bit 14). 0 = disable serr reporting 1 = enable serr reporting note that this bit does not affect the setting of the pci express error bits in the pci express capability structure. 7 ro 0 wait cycle control (wcc): reserved. 6rw 0 parity error response (per): controls the response to data parity errors forwarded from the pci express interface and peer pci on read completions. 0 = disable. ignore errors on the pci express interface and the peer-pci interface. 1 = enable. report read completion data parity errors on the pci e interface and set the master data parity detected (mdpd) bit in the status register. note that this bit does not affect the setting of the pci express error bits in the pci express capability structure. 5 ro 0 vga palette snoop (vga_ps): reserved. 4ro 0 memory write and invalidate (mwie): the intel ? 631xesb/632xesb i/o controller hub does not generate memory write and invalidate transactions, as the pci express interface does not have a corresponding transfer type. 3 ro 0 special cycle enable (sce): reserved.
intel ? 631xesb/632xesb i/o controller hub datasheet 449 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.4 offset 06h: pcists?status register (bm:d0:f3) offset: 06?07h attribute: rwc, ro default value: 0010h size: 16 bits 2rw 0 bus master enable (bme): controls the ability to act as a master on pci express when forwarding memory transactions from pci (memory, i/o, and configuration) or when generating msi transaction on behalf of the shpc. 0 = disable. 1 = enable. note that this bit does not stop intel ? 631xesb/632xesb i/o controller hub from issuing completions on pci express. software must guarantee that when this bit is set, all inbound posted tr ansactions are flushed in the bridge segment. otherwise, delayed completions (for example, configuration read completions) could be stuck behind a posted write and cannot proceed from pci to pci express. 1rw 0 memory space enable (mse): controls the response as a target to memory accesses on the pci express interface that address a device behind the pci express to pci-x bridge or the shpc memory space. 0 = these transactions are master aborted on the pci express interface. 1 = to allowed memory transaction from pci to be passed to the pci express. 0rw 0 i/o space enable (iose): controls the pci express to pci-x bridge's response as a target to i/o transactions on the pci express interface that addresses a device that resides behind the pci express to pci-x bridge. 0 = these transactions are master aborted on the pci express interface. 1 = enables response to i/o transaction initiated on the pci express interface. bits type reset description bits type reset description 15 rwc 0 detected parity error (dpe): 0 = software clears this bit by writing a 1 to it. 1 = data parity error on the pci express bus interface or peer pci segment is detected. this bit gets set even if the parity error response (bit 6 of the command register) is not set. indicates that a parity error was detected on cycles targeting the i/oxapic. 14 rwc 0 signaled system error (sse): this bit is used for pci-compatible error signaling on the pci express bus. 0 = software clears this bit by writing a 1 to it. 1 = serr# is reported to the pci express interface. 13 rwc 0 received master-abort (rma): 0 = software clears this bit by writing a 1 to it. 1 = intel ? 631xesb/632xesb i/o controller hub is acting as master on the pci express interface and receives a completion packet with master abort status. 12 rwc 0 received target-abort (rta): 0 = software clears this bit by writing a 1 to it. 1 = intel ? 631xesb/632xesb i/o controller hub is acting as master on the pci express interface and receives a completion packet with target abort status. 11 rwc 0 signaled target abort (sta): this bit is set whenever the pci express to pci-x bridge generates a completion packet with ca status on pci express (either forwarded from pci interface or internally signaled by shpc) 0 = target abort not signaled on the pci/pci-x interface. 1 = target abort signaled on the pci/pci-x interface. software clears this bit by writing a 1 to it. 10:9 ro 0 devsel# timing (dvt): these bits have no meaning on the pci express interface. hardwired to 0.
450 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.5 offset 08h: rid?revision id register (bm:d0:f3) offset: 08h attribute: ro default value: 00h size: 8 bits 13.6.1.6 offset 09h: cc?class code register (bm:d0:f3) offset: 09?0bh attribute: ro default value: 060400h size: 24 bits this contains the class code, sub class code, and programming interface for the device. 13.6.1.7 offset 0ch: cls?cache line size register (bm:d0:f3) offset: 0ch attribute: rw default value: 00h size: 8 bits this indicates the cache line size of the system. 8rwc 0 master data parity error (mdp): 0 = software clears this bit by writing a 1 to it. 1 = pci express to pci-x bridge receives a completion packet from the pci express interface from a previous request, and detects a data parity error, and the parity error response (per) bit in the command register (offset 04h, bit 6) is set. 7ro 0 fast back-to-back transactions capable (fbc): does not apply to pci express. hardwired to 0. 6ro 0reserved. 5ro 0 66 mhz enable (66en): does not apply to pci express. hardwired to 0. 4ro 1 capabilities list (capl): indicates that the pci express to pci-x bridge contains the capabilities pointer in the bridge. offset 34h (capabilities list pointer - capp) indicates the offset for the first entry in the linked list of capabilities. default = 1. 3ro 0 interrupt status (intsts): this bit reflects the state of the shpc interrupt, when the interrupt is generated via the irq[23]# wire (not via msi). only when the intx mask bit in the command register is a 0 and this interrupt status bit is a 1, and msi is disabled will the shpc assert the irq[23]# signal to the i/oxapic. setting the intx mask bit to a 1 has no effect on the setting of this bit. 2:0 ro 0 reserved. bits type reset description bits type reset description 7:0 ro 04h revision id (revid): this indicates the stepping of the pci express to pci- x bridge. 00 = a0 stepping. bits type reset description 23:16 ro 06h base class code (bcc): the value of "06h" indicates that this is a bridge device. 15:8 ros 04h sub class code (scc): 8-bit value that indicates this is of type pci-to-pci bridge. 7:0 ro 0 programming interface (pif): indicates that this is standard (non- subtractive) pci-to-pci bridge. bits type reset description 7:0 rw 0 cache line size (cls): this field is implemented by pci express devices as a rw field for legacy compatibility purposes but has no impact on any pci express device functionality.
intel ? 631xesb/632xesb i/o controller hub datasheet 451 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.8 offset 0dh: plt?primary latency timer register (bm:d0:f3) offset: 0dh attribute: rw default value: 00h size: 8 bits this register does not apply to the pci express interface. 13.6.1.9 offset 0eh: htyp?header type register (bm:d0:f3) offset: 0eh attribute: rw default value: 81h size: 8 bits this register is used to indicate the layout for bytes 10h through 3fh of the device?s configuration space. 13.6.1.10 offset 10h: shpc_bar?shpc 64-bit base address register (bm:d0:f3) offset: 10-17h attribute: rw, ro default value: 00000008h size: 64 bits this register is used to access the shpc working register set. note: when hot-plug is disabled (hpx_slot[3] = 0), this register is reserved and set to 0h. bits type reset description 7:3 ro 0 time value (tv): read only register since pci express does not have an equivalent functionality. 2:0 ro 0 reserved. bits type reset description 7ro 1 multi-function device (mfd): reserved as ?1? to indicate the bridge is a multi-function device. 6:0 ro 01h header type (htype): defines the layout of addresses 10h through 3fh in configuration space. reads as 01h to indicate that the register layout conforms to the standard pci express-to-pci/pci-x bridge layout. bits type reset description 63:12 rw 0 base address (ba): these bits are used by bios to understand that shpc needs 4 kbytes of memory space and then write a valid 4 kbyte aligned base address. 11:4 ro 0 reserved. 3ro 0 prefetchable (pf_shpc): this bit is a read-only 0 to indicate that this register needs to be mapped into the non-prefetchable space. 2:1 ro 10b type (typ_shpc): these bits are read-only with a reset default of 10b, indicating that this register can map anywhere in the 64-bit memory space. 0ro 0 memory space indicator (memsi): this bit is a read-only 0 indicating that this base address register maps into memory space.
452 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.11 offset 18h: pbn? primary bus number register (bm:d0:f3) offset: 18h attribute: rw default value: 00h size: 8 bits this register is used to record the bus number of the logical pci bus segment to which the primary interface of the bridge is connected. 13.6.1.12 offset 19h: scbn?secondary bus number register (bm:d0:f3) offset: 19h attribute: rw default value: 00h size: 8 bits this register is used to record the bus number of the pci bus segment to which the secondary interface of the bridge is connected. 13.6.1.13 offset 1ah: sbbn?subordinate bus number register (bm:d0:f3) offset: 1ah attribute: rw default value: 00h size: 8 bits this register is used to record the bus number of the highest numbered pci bus segment which is downstream of (or subordinate to) the bridge (pci express to pci-x bridge). 13.6.1.14 offset 1bh: slt?secondary latency timer (bm:d0:f3) offset: 1bh attribute: rw, ro default value: 00h (pci) size: 8 bits 40h (pci-x) this timer controls the amount of time that the pci express to pci-x bridge will continue to burst data on its secondary interface. the counter starts counting down from the assertion of pxframe#. if the grant is removed, the expiration of this counter will result in the de-assertion of pxframe#. if the grant has not been removed, then bits type reset description 7:0 rw 0 primary bus number (pbn): this field indicates the bus number of the pci express interface. configuration software programs the value in this register. any type 1 configuration cycle with a bus number less than this number will not be accepted by this portion of the intel ? 631xesb/632xesb i/o controller hub. bits type reset description 7:0 rw 0 secondary bus number (scbn): this field indicates the bus number of pci to which the secondary interface is connected. any type 1 configuration cycle matching this bus number will be translated to a type 0 configuration cycle and run on the pci bus. bits type reset description 7:0 rw 0 subordinate bus number (sbbn): this field indicates the highest pci bus number below this bridge. any type 1 configuration cycle on the pci express interface whose bus number is greater than the secondary bus number and less than or equal to the subordinate bus number will be run as a type 1 configuration cycle on the pci bus.
intel ? 631xesb/632xesb i/o controller hub datasheet 453 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) the pci express to pci-x bridge may continue ownership of the bus. secondary latency timer's default value should be 64 in pci-x mode (refer to section 1.12.2 of the pci-x* protocol addendum to the pci local bus specification , revision 2.0a , rule 11). 13.6.1.15 offset 1ch: iob?i/o base register (bm:d0:f3) offset: 1ch attribute: rw, ro default value: 00h size: 8 bits this register defines the base and limit (aligned to a 4-kbyte boundary) of the i/o area of the bridge. accesses from the pci express interface that are within the ranges specified in this register will be sent to pci if the i/o space enable bit is set. accesses from pci that are outside the ranges specified will master abort. 13.6.1.16 offset 1dh: iol?i/o limit register (bm:d0:f3) offset: 1dh attribute: rw, ro default value: 00h size: 8 bits this register defines the limit (aligned to a 4-kbyte boundary) of the i/o area of the bridge. accesses from the pci express interface that are within the ranges specified in this register will be sent to pci if the i/o space enable bit is set. accesses from pci that are outside the ranges specified will master abort. bits type reset description 7:3 rw pci ? 00h pci-x ? 08h secondary latency timer (tv): 5-bit value that indicates the number of pci clocks, in 8-clock increments, that the pci express bridge/switch will remain as a master of the pci bus if another master is requesting use of the pci bus. note: in scenarios like hot-plug when sw changes the mode of the pci bus from conventional to pci-x or vice-versa, this register changes its default value also appropriately. 2:0 ro 0 reserved. bits type reset description 7:4 rw 0 i/o base address bits [15:12] (ioba): this field defines the bottom address of an address range to determine when to forward i/o transactions from one interface to the other. these bits correspond to address lines 15:12 for 4 kb alignment. bits 11:0 are assumed to be 000h. 3:2 ro 0 i/o base address bits [11:10] (ioba1k): when the en1k bit is set in the intel ? 631xesb/632xesb i/o controller hub configuration register (cnf), these bits become read/write and are compared with i/o address bits [11:10] to determine the 1 kb base address. when the en1k bit is cleared, this field becomes read only. 1:0 ro 0 i/o base addressing capability (iobc): these are hardwired to ?0?, indicating support for only 16-bit i/o addressing. bits type reset description 7:4 rw 0 i/o limit address bits [15:12] (iola): defines the top address of an address range to determine when to forward i/o transactions from pci express to pci. these bits correspond to address lines 15:12 for 4 kb alignment. bits [11:0] are assumed to be fffh. 3:2 ro 0 i/o limit address bits [11:10] (iola1k): when the en1k bit is set in the intel ? 631xesb/632xesb i/o controller hub configuration register (cnf), these bits become read/write and are compared with i/o address bits [11:10] to determine the 1 kb limit address. when the en1k bit is cleared, this field becomes read only. 1:0 ro 0 i/o limit addressing capability (iolc): these bits are hardwired to ?0?, indicating support for only 16-bit i/o addressing.
454 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.17 offset 1eh: ssts?secondary status register (bm:d0:f3) offset: 1e?1fh attribute: rwc, ro default value: 02a0h size: 16 bits bits type reset description 15 rwc 0 detected parity error (dpe): this bit reports the detection of an uncorrectable address, attribute or data error by the intel ? 631xesb/632xesb i/o controller hub?s pci/pci-x interface. this bit is set when any one of the following three conditions are true: ? an uncorrectable address or attribute error as a potential target is detected. ? an uncorrectable data error when the target of a write transaction or a pci-x split completion is detected. ? an uncorrectable data error when the master of a read transaction (immediate read data or pci-x split response) is detected. this bit gets set even if the parity error response enable bit (bit 0 of offset 3e?3fh) of the bridge control register. 0 = uncorrectable address, attribute or data error not detected on the pci/ pci-x interface. 1 = uncorrectable address, attribute or data error detected on the pci/pci-x interface. software clears this bit by writing a 1 to it. 14 rwc 0 received system error (rse): this bit reports the detection of a serr# assertion on the pci/pci-x interface. 0 = serr# assertion on the pci/pci-x interface has not been detected. 1 = serr# assertion on the pci/pci-x interface has been detected. software clears this bit by writing a 1 to it. 13 rwc 0 received master abort (rma): this bit reports the detection of a master-abort termination when the pci express to pci-x bridge is acting as a pci/pci-x master or when the pci express to pci-x bridge receives a pci-x split completion message indicating master abort. 0 = master-abort not detected on the pci/pci-x interface. 1 = master-abort detected on the pci/pci-x interface software clears this bit by writing a 1 to it. 12 rwc 0 received target abort (rta): this bit reports the detection of a target-abort termination when the pci express to pci-x bridge is acting as a pci/pci-x master or when the pci express to pci-x bridge signals a pci-x split completion message indicating ta r g e t a b o r t . 0 = target-abort not detected on the pci/pci-x interface. 1 = target-abort detected on the pci/pci-x interface software clears this bit by writing a 1 to it. 11 rwc 0 signaled target abort (sta): this bit reports the signaling of a targ et-abort termination by the pci express to pci-x bridge when it responds as the target of a transaction on the pci/ pci-x interface or when the pci express to pci-x bridge signals a pci-x split completion message with target abort. 0 = target-abort not signaled on the pci/pci-x interface. 1 = target-abort signaled on the pci/pci-x interface. software clears this bit by writing a 1 to it. 10:9 ro 01b devsel# timing (dvt): this field indicates that the pci express to pci-x bridge responds in medium decode time to all cycles targeting the pci express interface.
intel ? 631xesb/632xesb i/o controller hub datasheet 455 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.18 offset 20h: mb?memory base register (bm:d0:f3) offset: 20?21h attribute: rw, ro default value: 0000h size: 16 bits this register defines the base (aligned to a 1-mbyte boundary) of the prefetchable memory area of the bridge. accesses from the pci express interface that are within the range specified in this register will be sent to pci if the memory space enable bit is set. accesses from pci that are outside the range specified will be forwarded to the pci express interface if the bus master enable bit is set. 13.6.1.19 offset 22h: ml?memory limit register (bm:d0:f3) offset: 22?24h attribute: rw, ro default value: 0000h size: 16 bits this register defines the limit (aligned to a 1 mbyte boundary) of the prefetchable memory area of the bridge. accesses from the pci express interface that are within the range specified in this register will be sent to pci if the memory space enable bit is set. 8rwc 0 master data parity error (mdp): this bit is used to report the detection of an uncorrectable data error. this bit is set if the pci express to pci-x bridge is the bus master of the transaction on the pci/pci-x interface, the parity error response bit in the bridge control register is set, and either of the following two conditions occur: ? the pci express to pci-x bridge asserts perr# on a read transaction ? the pci express to pci-x bridge detects perr# asserted on a write transaction in addition, when in pci-x mode, this bit is set if either of the following occur: ? the pci express to pci-x bridge detects an uncorrectable data error in a split completion or split completion message. ? the pci express to pci-x bridge receives a split completion message for a non-posted write indicating an uncorrectable (split) write data error. 0 = no uncorrectable data error detected on the pci/pci-x interface. 1 = uncorrectable data error detected on the pci/pci-x interface. once set, this bit remains set until it is reset by writing a 1 to this bit location. if the parity error response bit is cleared, this bit is never set. 7ro 1 fast back-to-back transactions capable (fbtc): indicates that the secondary interface can receive fast back-to-back cycles. 6ro 0reserved. 5ro 1 66 mhz capable (c66): indicates the secondary interface of the bridge is 66 mhz capable. 4:0 ro 0 reserved. bits type reset description bits type reset description 15:4 rw 0 memory base (mb): these bits are compared with bits [31:20] of the incoming address to determine the lower 1 mb aligned value (inclusive) of the range. the incoming address must be greater than or equal to this value. 3:0 ro 0 reserved.
456 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) accesses from pci that are outside the range specified will be forwarded to the pci express interface if the bus master enable bit is set. 13.6.1.20 offset 24h: pmb?prefetchable memory base register (bm:d0:f3) offset: 24?25h attribute: rw, ro default value: 0001h size: 16 bits defines the base (aligned to a 1mbyte boundary) of the prefetchable memory area of the bridge. accesses from the pci express interface that are within the ranges specified in this register will be sent to pci if the memory space enable bit is set. accesses from pci that are outside the ranges specified will be forwarded to the pci express interface if the bus master enable bit is set. note that even though this register specifies a valid prefetchable memory window, the pci express to pci-x bridge never prefetches through this window in the outbound direction (reads from pci express to pci). in the inbound direction, prefetchability through this window is controlled through the pci express to pci-x bridge configuration register bits 4:3, at offset 40h. 13.6.1.21 offset 26h: pml?prefetchable memory limit register (bm:d0:f3) offset: 26?27h attribute: rw, ro default value: 0001h size: 16 bits defines the limit (aligned to a 1 mbyte boundary) of the prefetchable memory area of the bridge. accesses from the pci express interface that are within the ranges specified in this register will be sent to pci if the memory space enable bit is set. accesses from pci that are outside the ranges specified will be forwarded to the pci express interface if the bus master enable bit is set. bits type reset description 15:4 rw 0 memory limit (ml): these bits are compared with bits [31:20] of the incoming address to determine the upper 1mbyte aligned value (exclusive) of the range. the incoming address must be less than this value. 3:0 ro 0 reserved. bits type reset description 15:4 rw 0 prefetchable memory base (pmb): these bits are compared with bits [31:20] of the incoming address to determine the lower 1 mb aligned value (inclusive) of the range. the incoming address must be greater than or equal to this value. 3:0 ro 1 64-bit indicator (is64b): indicates that 64-bit addressing is supported for the limit. this value must be in agreement with the is64l field.
intel ? 631xesb/632xesb i/o controller hub datasheet 457 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) note that even though this register specifies a valid prefetchable memory window, the pci express to pci-x bridge never prefetches through this window in the outbound direction (reads from pci express to pci). in the inbound direction, prefetchability through this window is controlled through the pci express to pci-x bridge configuration register bits 4:3, at offset 40h. 13.6.1.22 offset 28h: pmbu32?prefetchable base upper 32 bits register (bm:d0:f3) offset: 28?2bh attribute: rw, ro default value: 00000000h size: 32 bits this defines the upper 32 bits of the prefetchable address base register. 13.6.1.23 offset 2ch: pmlu32?prefetchable limit upper 32 bits register (bm:d0:f3) offset: 2c?2fh attribute: rw default value: 00000000h size: 32 bits this defines the upper 32 bits of the prefetchable address limit register. 13.6.1.24 offset 30h: iolu16?i/o limit upper 16 bits register (bm:d0:f3) offset: 30?31h attribute: ro default value: 0000h size: 16 bits since i/o is limited to 64 kbytes, this register is reserved and not used. 13.6.1.25 offset 32h: iobu16?i/o base upper 16 bits register (bm:d0:f3) offset: 32?33h attribute: ro default value: 0000h size: 16 bits since i/o is limited to 64 kbytes, this register is reserved and not used. bits type reset description 15:4 rw 0 prefetchable memory limit (pml): these bits are compared with bits [31:20] of the incoming address to determine the upper 1 mbyte aligned value (exclusive) of the range. the inco ming address must be less than this value. 3:0 ro 1 64-bit indicator (is64l): indicates that 64-bit addressing is supported for the limit. this value must be in agreement with the is64b field. bits type reset description 31:0 rw 0 prefetchable memory base upper portion (pmbu): all bits are read/ writeable; full 64-bit addressing supported. bits type reset description 31:0 rw 0 prefetchable memory limit upper portion (pmlu): all bits are read/ writeable; full 64-bit addressing supported. bits type reset description 15:0 ro 0 i/o limit high 16 bits (iolh): reserved. bits type reset description 15:0 ro 0 i/o base high 16 bits (iobh): reserved.
458 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.26 offset 34h: capp?capabiliti es pointer register (bm:d0:f3) offset: 34h attribute: ro default value: 44h size: 8 bits this register is used to point to a linked list of additional capabilities. 13.6.1.27 offset 3ch: intr ? interrupt information register (bm:d0:f3) offset: 3ch attribute: rw default value: 00h size: 16 bits this register contains information on interrupts on the bridge. 13.6.1.28 offset 3eh: bctrl?bridge control register (bm:d0:f3) offset: 3e?3fh attribute: rw, rwc; ro default value: 0000h size: 16 bits this register provides extensions to the command register that are specific to a bridge. the bridge control register provides many of the same controls for the secondary interface that are provided by the command register for the primary interface. some bits affect operation of both interfaces of the bridge. bits type reset description 7:0 ro 44h capabilities pointer (ptr): this field indicates that the pointer for the first entry in the pci express capability list is at offset 44h in configuration space. bits type reset description shpc disabled (hxslot[3]=0 at pwrok asserting edge) 15:08 ro 00h interrupt pin (pin): indicates no interrupt is used by the bridge segment shpc enabled (hxslot[3]=1 at pwrok asserting edge) 15:08 ro 01h interrupt pin (pin): intel ? 631xesb/632xesb i/o controller hub has an integrated shpc, which is a source of interrupt. the logical pci-x bus interrupt pin is inta# with a corresponding register value of 01h. note that the hot-plug interrupt is routed internally to irq[23]# of the apic. 7:0 rw 00h interrupt line (intrl): this register is used to convey the interrupt line routing information between the initializat ion code and the device driver. this is not used by intel ? 631xesb/632xesb i/o controller hub. this is a read/ write register with a reset default of 0. bits type reset description 15:12 ro 0 reserved. 11 rw 0 discard timer serr enable (dtse): controls the generation of err_unc on the primary interface in response to a timer discard on the secondary interface. 0 = do not generate err_unc on a secondary timer discard 1 = generate err_unc in response to a secondary timer discard 10 rwc 0 discard timer status (dts): software clears this bit by writing a 1 to it. 1 = secondary discard timer expires (there is no discard timer for the primary interface) 9rw 0 secondary discard timer (sdt): sets the maximum number of pci clock cycles that the pci express to pci-x bridge waits for an initiator on the pci bus to repeat a delayed transaction request. the counter starts once the delayed transaction completion is at the head of the queue. if the master has not repeated the transaction at least once before the counter expires, the pci express to pci-x bridge discards the transaction from its queues. 0 = the pci master timeout value is between 2 15 and 2 16 pci clocks. 1 = the pci master timeout value is between 2 10 and 2 11 pci clocks.
intel ? 631xesb/632xesb i/o controller hub datasheet 459 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 8ro 0 primary discard timer (pdt): not relevant to the pci express interface. this bit is rw for software compatibility only. 7ro 0 fast back-to-back enable (fbe): the pci express to pci-x bridge cannot generate fast back-to-back cycles on the pci bus from pci express interface initiated transactions. 6rw 0 secondary bus reset (sbr): controls pxpcirst# assertion on the pci bus. 0 =pxpcirst# is deasserted. 1 = pxpcirst# is asserted. when pxpcirst# is asserted, the data buffers between the pci express interface and pci and the pci bus interface logic are initialized back to reset conditions. the pci express interface logic and the pci express to pci-x bridge configuration registers are not affected. shpc interface logic, shpc working space registers, i/oxapic interface logic and i/ oxapic registers are not reset on this bit being set. note that once this bit is set, the currently running transaction on the pci bus will be completed and then the bus will be reset. it is the responsibility of software to make sure that all pending transactions with the bus segment are complete before setting this bit. 5rw 0 master abort mode (mam): controls the behavior when a master abort occurs on either interface. master abort on the pci express interface (memory reads only): 0 = the pci express to pci-x bridge asserts pxtrdy# on the pci/pci-x bus. it drives all '1's for reads. 1 = the pci express to pci-x bridge returns a target abort on the pci/pci-x bus. master abort pci (completion required packets only): 0 = normal completion status will be returned on the pci express interface. 1 = target abort completion status will be returned on the pci express interface. 4rw 0 vga 16-bit decode (v16d): this bit enables the bridge to provide 16-bit decoding of the vga i/o address precluding the decode of vga alias addresses every 1 kb. this bit requires the vga enable bit (bit 3 of this register) to be set to 1. 0 = disable 1 = enable 3rw 0 vga enable (vgae): modifies the response to vga compatible address. 1 = the following transactions from the pci express interface to pci regardless of the value of the i/o base and i/o limit registers is forwarded. the transactions are qualified by the memory enable and i/o enable in the command register. memory addresses: 000a0000h?000bffffh i/o addresses: 3b0h?3bbh and 3c0h-3dfh. for the i/o addresses, bits [63:16] of the address must be ?0?, and bits [15:10] of the address are ignored (that is, aliased). 0 = the same holds true from secondary accesses to the primary interface in reverse. that is, when the bit is 0, memory and i/o addresses on the secondary interface between the above ranges will be forwarded to the pci express interface. bits type reset description
460 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.29 offset 40h: cnf?pci express* to pci-x* bridge configuration register (bm:d0:f3) offset: 40?41h attribute: rw, ro default value: see register description size: 16 bits this register contains pci express to pci-x bridge specific control bits. 2rw 0 isa enable (ie): modifies the response by the bridge to isa i/o addresses. this only applies to i/o addresses that are enabled by the i/o base and i/o limit registers and are in the first 64 kb of pci i/o space. 0 = disable. 1 = enable. the bridge will block any forwarding from primary to secondary of i/o transactions addressing the last 768 bytes in each 1 kb block (offsets 100h to 3ffh). this bit has no effect on transfers originating on the secondary bus as the intel ? 631xesb/632xesb i/o controller hub does not forward i/o transactions across the bridge. 1rw 0 serr enable (se): controls the forwarding of secondary interface serr# assertions on the primary interface. 0 = disable. 1 = enable. the intel ? 631xesb/632xesb i/o controller hub will send a pci express interface serr cycle when all of the following are true: ? serr# is asserted on the secondary interface. ? this bit is set. ? the serr enable bit in the command register is set. 0rw 0 parity error response enable (pere): controls the response to address and data parity errors on the secondary interface. 0 = the bridge must ignore any parity errors that it detects and continue normal operation. the intel ? 631xesb/632xesb i/o controller hub must generate parity even if parity error reporting is disabled. 1 = report parity errors. bits type reset description bits type reset description 15:14 rw x pci mode (pmode): determines the mode of operation of the pci bus. these bits both reflect the status of the current pci bus mode at power up and also lets software change the mode by writing to these bits. bits mode 00 conventional pci mode 01 pci-x mode 1 10/11 reserved 13 ro 1 reserved 12 rw 0 enable i/o space to 1 kb granularity (en1k): 0 = disable. 1 = enable. i/o space is decoded to 1 kb instead of the 4 kb limit that currently exists in the i/o base and i/o limit registers. it does this by redefining bits [11:10] and bits [3:2] of the iob and iol registers at offset 1ch and 1dh to be read/write, and enables them to be compared with i/o address bits [11:10] to determine if th ey are within the bridge's i/o range. 11 ro 0 reserved. 10:9 rw 0 pci frequency (pfreq): determines the frequency at which the pci bus operates. after software determines the bus? capabilities, it sets this value and the pmode (bits 14 and 15 of this register) to the desired frequency and resets the pci bus. the values are encoded as follows: 00 = 33 mhz 01 = 66 mhz 10 = 100 mhz 11 = 133 mhz invalid combinations should not be written by software. results will be indeterminate.
intel ? 631xesb/632xesb i/o controller hub datasheet 461 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.30 offset 42h: mtt?multi-transaction timer register (bm:d0:f3) offset: 42h attribute: rw, ro default value: 00h size: 8 bits this register controls the amount of time that the pci express to pci-x bridge?s arbiter allows a pci initiator to perform multiple back-to-back transactions on the pci bus. the number of clocks programmed in the multi-transition timer represents the guaranteed time slice (measured in pci clocks) allotted to the current agent, after which the arbiter will grant another agent that is requesting the bus. 13.6.1.31 offset 43h: pclkc?pci clock control register (bm:d0:f3) offset: 43h attribute: rw, ro default value: ffh size: 8 bits this register controls the enable or disable of the pci express to pci-x bridge pci clock outputs pxpclko[6:0]. 13.6.1.32 offset 44h: pci express_capid?pci express* capability identifier register (bm:d0:f3) offset: 44h attribute: ro default value: 10h size: 8 bits 13.6.1.33 offset 45h: pci express_nxtp?pci express* next pointer register (bm:d0:f3) offset: 45h attribute: ro default value: 5ch size: 8 bits 8:6 ro 0 reserved. 5rw 0 shpc gpe message enable (sgme): enable redirection of hot-plug interrupts to assert/deassert_gpe messages on the pci express bus. 4:0 ro 0 reserved. bits type reset description bits type reset description 7:3 rw 0 timer count value (mtc): this field specifies the amount of time that grant remains asserted to a master continuously asserting its request for multiple transfers. this field specifies the count in an 8-clock (pci clock) granularity. 2:0 ro 0 reserved. bits type reset description 7 ro 1b reserved 6:0 rw 1111111 b pci clock control (pclkc): these bits enable the pci clock output buffers, when 1. otherwise the buffers are tri-stated. bit 6 corresponds to pxpclko[6], bit 5 corresponds to pxpclko[5], and so forth. bits type reset description 7:0 ro 10h pci express capability identifier (pci expresscapi): indicates pci express capability. bits type reset description 7:0 ro 5ch or 6ch next pointer (mnptr): points to the next capabilities list pointer, which is the msi capability. when shpc is enabled, the register value is 5ch; when shpc is disabled, the register value is 6ch.
462 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.34 offset 46h: pci express_cap?pci express* capability register (bm:d0:f3) offset: 46 - 47h attribute: ro default value: 0030h size: 16 bits 13.6.1.35 offset 48h: pci express_dcap?pci express* device capabilities register (bm:d0:f3) offset: 48 ? 4bh attribute: ro default value: 00000001h size: 32 bits this register contains information about the pci express link capabilities. bits type reset description 15:8 ro 0 reserved. 7:4 ro 7h device/port type(devport): indicates the type of pci express logical device. value of 7h indicates that this is a pci/pci-x to pci express bridge. 3:0 ro 1h capability version (capver): indicates pci-sig defined pci express capability structure version number. must be 1h for this version. bits type reset description 31:12 ro 0 reserved. 11:9 ro 0 endpoint l1 acceptable latency (l1al): the pci express to pci-x bridge does not support l1 link state power management (lspm). 8:6 ro 0 endpoint l0s acceptable latency (l0al): the pci express to pci-x bridge wants the least possible latency out of l0s. 5ro 0 extended tag field supported (etfs): this field indicates the maximum supported size of the tag field. defined encodings are: 0 = 5-bit tag field supported 1 = 8-bit tag field supported the pci express to pci-x bridge only supports a 5-bit tag. 4:3 ro 0 reserved. 2:0 ro 1 supported maximum payload size (smps): the pci express to pci-x bridge supports a max payload size of 256 byte packets.
intel ? 631xesb/632xesb i/o controller hub datasheet 463 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.36 offset 4ch: pci express_dctl?pci express* device control register (bm:d0:f3) offset: 4c ? 4dh attribute: rw, ro default value: 0000h size: 16 bits this register contains command bits that control the pci express to pci-x bridge behavior on the pci express bus. bits type reset description 15 rw 0 bridge configuration retry enable (bcre): when set, the pci express to pci-x bridge is enabled to return a configuration retry response on the pci express* bus for a configuration transaction to pci/pci-x. 14:12 rw 2h max_read_request size (mrrs): applies to the bridge segment when the segment is in the pci mode only. when in pci-x mode, this does not apply (branch predict). the pci express to pci-x bridge cannot send requests greater than the size indicated by this field. encodings are: value request size 000b 128 bytes 001b 256 bytes 010b 512 bytes 011b 1024 bytes 100b 2048 bytes 101b 4096 bytes 110b alias 101b 111b alias 101b 11 ro 0 enable no snoop (ens): this does not apply to the pci express to pci-x bridge since it does not set the no snoop bit on msi transactions it generates. 10 ro 0 auxiliary (aux) power pm enable (auxpwrpm_en): the pci express to pci-x bridge ignores this since it does not support aux power. 9ro 0 phantom function enable (pfe): the pci express to pci-x bridge ignores this since it does not support phantom functions. 8ro 0 extended tag field enable (etfe): always a 0 since the pci express to pci-x bridge only supports a 5-bit tag. 7:5 rw 0 maximum payload size (mps): for pci express to pci-x bridge this must be programmed to either 000 (128b) or 001(256b). any other value will default to a behavior of 128b. 4ro 0reserved. 3rw 0 unsupported request reporting enable (urre): enables reporting of unsupported requests. 2rw 0 fatal error reporting enabled (fere): controls reporting of fatal errors. 0 = disable. 1 = pci express to pci-x bridge will report fatal errors. 1rw 0 non-fatal error reporting enabled (nfere): controls reporting of non- fatal errors. 0 = disable. 1 = pci express to pci-x bridge will report uncorrectable errors. 0rw 0 correctable error reporting enable (cere): controls reporting of correctable errors. 0 = disable. 1 = report correctable errors.
464 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.37 offset 4eh: exp_dsts?pci express* device status register (bm:d0:f3) offset: 4e ? 4fh attribute: rwc; ro default value: 0000h size: 16 bits this register contains information on the pci express device status. 13.6.1.38 offset 50h: pci express_lcap?pci express* link capabilities register (bm:d0:f3) offset: 50 ? 53h attribute: ro default value: 000b0211h size: 32 bits this register identifies pci express link specific capabilities. bits type reset description 15:6 ro 0 reserved. 5ro 0 transactions pending (tp): when this bit is set, the pci express to pci-x bridge has issued non-posted requests which have not been completed. the pci express to pci-x bridge reports this bit cleared only when all completions for any outstanding non-posted request have been received. note that this is a dynamic bit; that is, this bit could go on and off based on traffic through the pci express to pci-x bridge. 4ro 0 aux power detected (apd): the pci express to pci-x bridge does not support aux power and hence this bit is reserved. 3rwc 0 unsupported request detected urd): the pci express to pci-x bridge sets this bit when any unsupported request from pci express is received. this includes requests that are not claimed by any functions within the pci express-to-pci-x bridge, but does not include any request that is forwarded to the pci interface with completions returned with an unsupported request status. 2rwc 0 fatal error detected (ferrd): when set, a fatal error has been detected (regardless of whether an error message was generated or not). this bit remains set until software writes a 1 to clear it. 1rwc 0 non-fatal error detected (nferrd): when set, a nonfatal error has been detected (regardless of whether the mask bit was set in advanced error capability or not). this bit remains set until software writes a 1 to clear it. 0rwc 0 correctable error detected (cerrd): when set, a correctable error has been detected (regardless of whether an error message was generated). this bit remains set until software writes a 1 to clear it. bits type reset description 31:18 ro 0 reserved. 17:15 ro 111b l1 exit latency (l1el): l1 transition is not supported. 14:12 ro 111b l0s exit latency (l0el): the value in these bits is influenced by bit 6 in the link control register. note that software could write the bit 6 in link control register to either a 1 or 0 and these bits should change accordingly. the mapping is shown below: bit 6 pci express link control link capabilities bits 14:12 0 110b = 2-4 us 1 010b = 128 ms to less than 256 ms 11:10 ro 1h active state link pm support (aslpms): only active state l0s supported. 9:4 ro 08h maximum link width (mlw): support a x8 link maximum. 3:0 ro 1h maximum link speed (mls): support 2.5 gbps.
intel ? 631xesb/632xesb i/o controller hub datasheet 465 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.39 offset 54h: pci express_lctl? pci express* link control register (bm:d0:f3) offset: 54 ? 55h attribute: rw, ro default value: 0000h size: 16 bits this register controls pci express link specific parameters. 13.6.1.40 offset 56h: pci express_lsts ? pci express* link status register (bm:d0:f3) offset: 56 ? 57h attribute: ro default value: 0040h (x4 link) size: 16 bits 0080h (x8 link) this register provides information about pci express link specific parameters. bits type reset description 15:8 ro 0 reserved. 7rw 0 extended synch (exts): this bit when set forces extended transmission of 4096 fast training sequence (fts) ordered sets in fts and an extra 1024 training sequence one (ts1) at exit from l1 prior to entering l0. this mode provides external devices monitoring the link time to achieve bit and symbol lock before the link enters l0 state and resumes communication. default value for this bit is 0. 6rw 0 common clock configuration (ccc): this bit when set indicates that pci express to pci-x bridge and the component at the opposite end of this link are operating with a distributed common reference clock. a value of 0 indicates that this component and the component at the opposite end of this link are operating with asynchronous reference clock. note that this bit is used to reflect the proper l0s exit latency value in the exp_lsts register. components utilize this common clock configuration information. 5:2 ro 0 reserved. 1:0 rw 0 active state link pm control (aslpmc): enables pci express to pci-x bridge to enter l0s, not used by i/oxapic in normal operation. 00 = l0s entry disabled. 01 = the pci express to pci-x bridge enters l0s per the specification requirements for l0s entry. 10 = l0s entry disabled. 11 = pci express to pci-x bridge enters l0s per the specification requirements for l0s entry. bits type reset description 15:13 ro 0 reserved. 12 ros 0 slot clock configuration: this bit indicates that when pci express bridge/ switch is on a pci express connector, that it is using the same reference clock as is provided at the connector. a value of 0 indicates independent reference clock and a value of 1 indicates same reference clock. note that this bit becomes rws when acnf[2] is set. 11 ro 0 link training ? this read-only bit indicates the physical layer ltssm is in the configuration or recovery state, or that 1b was written to the retrain link bit but link training has not yet begun. hardware clears this bit when the ltssm exits the configuration/recovery state. this field is not applicable and reserved for endpoint devices and upstream ports of switches, and must be hardwired to 0b.
466 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.41 offset 5ch: msi_capid? pci express* msi capability identifier register (bm:d0:f3) offset: 5ch attribute: ro default value: 05h size: 8 bits this register identifies whether the function is msi capable. 13.6.1.42 offset 5dh: msi_nxtp?pci express* msi next pointer register (bm:d0:f3) offset: 5dh attribute: ro default value: 6ch size: 8 bits 13.6.1.43 offset 5eh: msi_mc?pci express* msi message control register (bm:d0:f3) offset: 5e ? 5fh attribute: rw; ro default value: 0080h size: 16 bits 10 ro 0 undefined ? the value read from this bit is undefined. in previous versions of this specification, this bit was used to indicate a link training error. system software must ignore the value read from this bit. system software is permitted to write any value to this bit. 9:4 ro 4h (x4) 8h (x8) negotiated link width (nlw): this field indicates the negotiated width of pci express link. defined encodings are: 000100b x4 001000b x8 3:0 ro 0001b link speed (ls): this field indicates the negotiated link speed of the pci express link. the intel ? 631xesb/632xesb i/o controller hub supports only 2.5 gbps. bits type reset description bits type reset description 7:0 ro 05h capability id (mcid): the value of 05h in this field identifies the function as message signaled interrupt capable. bits type reset description 7:0 ro 6ch next pointer (mnptr): pointer to the next item in the capabilities list. must be null for the final item in the list. bits type reset description 15:8 ro 0 reserved. 7ro 1 64bit address capable (64cap): the intel ? 631xesb/632xesb i/o controller hub is capable of generating a 64-bit message address. 6:4 rw 0 multiple message enable (mmen): these bits are rw for software compatibility, but only one message is ev er sent by the pci express to pci-x bridge. 3:1 ro 0 multiple message capable (mmcap): supports only single message. 0rw 0 msi enable (msien): if set to a 1, the intel ? 631xesb/632xesb i/o controller hub is permitted to use msi to request service and is prohibited from using its intx# pin. thus msi would be enabled and shpc would not use the irq[23]# wired to the internal i/oxapic to generate interrupts. if set to a 0, the intel ? 631xesb/632xesb i/o controller hub is prohibited from using msi to request service.
intel ? 631xesb/632xesb i/o controller hub datasheet 467 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.44 offset 60h: msi_ma?pci express* msi message address register (bm:d0:f3) offset: 60 ? 67h attribute: rw, ro default value: 00000000h size: 64 bits 13.6.1.45 offset 68h: msi_md?pci express* msi message data register (bm:d0:f3) offset: 68 ? 69h attribute: rw default value: 0000h size: 16 bits 13.6.1.46 offset 6ch: pci expresspm_ca pid ? pci express* pm capability structure register (bm:d0:f3) offset: 6ch attribute: ro default value: 01h size: 8 bits this register identifies specific pci express power management capabilities. 13.6.1.47 offset 6dh: pci expresspm_nxtp ? pci express* bridge power management capabilities register (bm:d0:f3) offset: 6dh attribute: ro default value: 78h or d8h size: 8 bits bits type reset description 63:2 rw 0 address (addr): lower 32 bits of the system specified message address, always dword aligned. 1:0 ro 0 reserved. bits type reset description 15:0 rw 0 data (data): this 16-bit field is programmed by system software if msi is enabled. its content is driven onto the lower word (d[15:0]) of the msi memory write transaction. bits type reset description 7:0 ro 01h capability id (capid): capability id indicates pci compatible power management. bits type reset description 7:0 ro 78h or 80h next capability pointer (ncptr): points to the next capability item. default is 78h when shpc is enabled (hpx_slot[3] = 1), and 80h when shpc is disabled (hpx_slot[3] = 0).
468 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.48 offset 6eh: pci expresspm_pmc ? pci express* bridge power management capabilities register (bm:d0:f3) offset: 6eh attribute: ro default value: 01h size: 8 bits 13.6.1.49 offset 70h: pci express_pmcsr ? pci express* bridge power management control/status register (bm:d0:f3) offset: 70? 71h attribute: rwcs, rws, rw, ro default value: xx000000h size: 16 bits bits type reset description 15:11 ro 19h pme_support (pmes): supports pme assertion on behalf of the shpc when in the d3 hot state. the pci express to pci-x bridge does not generate pme from the d3 cold state. 10 ro 0 d2 support (d2s): does not support the d2 device state. 9ro 0 d1 support (d1s): does not support the d1 device state. 8:6 ro 0 aux current (auxc): does not support aux power. 5ro 0 device specific initialization (dsi): the pci express to pci-x bridge does not require device specific initialization when transitioned to d0 from d3hot state, so this bit is zero. 4ro 0reserved. 3ro 0 pme clock (pmeclk): this is not applicable to pci express and hence hardwired to 0. 2:0 ro 02h version (vers): the pci express to pci-x bridge pm implementation is compliant with the pci power management specification revision 1.1 . bits type reset description 15 rwcs 0 pme status (pmest): this bit is set when the pci express to pci-x bridge would have normally sent a pme request on behalf of shpc, independent of the state of the pme_en bit. the shpc requests a pme message when the pci express to pci-x bridge is in the d3 hot state and a hot-plug operation is requested. refer to the shpc specification for the details of pme generation. 14:13 ro 0 data scale (dats): data register is not implemented and hence these two bits are ?0.? 12:9 ro 0 data select (datsel): reserved since the data register is not implemented. 8rws 0 pme enable (pme_en): gates assertion of the pme message on behalf of the shpc. 7:2 ro 0 reserved. 1:0 rw 00b power state (pwr_st): this 2-bit field is used both to determine the current power state of a function and to set the function into a new power state. the pci express to pci-x bridge supported field values are given below: 00b ? d0 01b ? reserved 10b ? reserved 11b ? d3 hot if software attempts to write an unsupported reserved state to this field, the write operation must complete normally on the bus; however, the data is discarded and no state change occurs.
intel ? 631xesb/632xesb i/o controller hub datasheet 469 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.50 offset 72h: pci expresspm_bse?pci express* bridge power management bridge support extensions (bm:d0:f3) offset: 72h attribute: ro default value: 00h size: 8 bits 13.6.1.51 offset 73h:pci expressm_data?pci express* bridge power management data field register (bm:d0:f3) 13.6.1.52 offset 78h: shpc_capid?shpc capability identifier register (bm:d0:f3) offset: 78h attribute: ro default value: 0ch size: 8 bits note: when hot-plug is disabled (hpx_slot[3] = 0), this register is reserved. 13.6.1.53 offset 79h: shpc_nxtp?shpc next item pointer register (bm:d0:f3) offset: 79h attribute: ro default value: 80h size: 8 bits note: when hot-plug is disabled (hpx_slot[3] = 0), this register is reserved, and default is 00h. 13.6.1.54 offset 7ah: shpc_dwsel?shpc dword select register (bm:d0:f3) offset: 7ah attribute: rw/ro default value: 00h size: 8 bits this register is used to select the dword offset in the shpc working register set for read and write by the shpc software. bits type reset description 7ro 0 bpcc_en (bus power/clock control enable): pci express to pci-x bridge does not provide either bus or clock control of pci when in d3hot state. this bit is wired to a 0. 6ro 0 b2/b3#: this bit has no meaning since bpcc_en bit is a 0. 5:0 ro 0 reserved. bits type reset description 7:0 ro 0ch data: does not report the data register. bits type reset description 7:0 ro 0ch shpc capability id (capid): used to detect the presence of an shpc integrated with a pci-to-pci bridge. the shpc capability id must be set to 0ch. bits type reset description 7:0 ro 80h next capability pointer : points to the pci bridge subsystem vendor capability
470 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) note: when hot-plug is disabled (hpx_slot[3] = 0), this register is reserved. 13.6.1.55 offset 7bh: shpc_sts?shpc status register (bm:d0:f3) offset: 7bh attribute: ro default value: x0h size: 8 bits note: when hot-plug is disabled (hpx_slot[3] = 0), this register is reserved. 13.6.1.56 offset 7ch: shpc_dword?shpc data register (bm:d0:f3) offset: 7c ? 7fh attribute: rw/ro default value: 00000000h size: 32 bits note: when hot-plug is disabled (hpx_slot[3] = 0), this register is reserved. 13.6.1.57 offset 80h: svid_capid ? subsystem and vendor id capabilities identifier register (bm:d0:f3) offset: 80h attribute: ro default value: 0dh size: 8 bits note: identifies this item in the capabilities list as the pci bridge subsystem vendor capability. it returns 0dh when read. bits type reset description 7:0 rw 0 dword select (dws): selects the dword from the shpc working register set that is accessible through the dword data register. accesses to the dword data register have no effect on the dword select field. a value of 0 selects the first dword of the shpc working set. a value of 1 selects the second dword, and so on. this field has a default value of 0. bits type reset description 7ro x controller interrupt pending (cip): this bit is set when one or more bits are set in the interrupt locator register in the shpc working register set. this bit is cleared when no bits are set in the interrupt locator register. 6ro x controller system error pending (csp): this bit is set when one or more bits are set in the serr locator register in the shpc working register set. this bit is cleared when no bits are set in the serr locator register. 5:0 ro 0 reserved. bits type reset description 31:0 rw 0 dword data (dwd): this field allows software to access the shpc working register set via the capabilities list item in configuration space. the dword select field selects the shpc working register set dword that is accessed by reads and writes to this register. accessing shpc working register set registers through this field behaves the same as accessing them through memory-mapped accesses. multiple accesses to the dword data register continue to affect the same dword if the dword select field is unchanged. if the pci-to-pci bridge integrated with the shpc is not in the d0 power management state, reads from this register must complete successfully but the returned value is undefined and the behavior of writes is undefined. bits type reset description 7:0 ro 0d identifier (id): indicates this is the pci bridge subsystem vendor capability.
intel ? 631xesb/632xesb i/o controller hub datasheet 471 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.58 offset 81h: svid_nxtp ? next item pointer register (bm:d0:f3) offset: 81h attribute: ro default value: d8h size: 8 bits note: indicates where the next item in the capabilities list resides. points to the pci-x capabilities identifier. 13.6.1.59 offset 84h: svid ? subsystem vendor id register (bm:d0:f3) offset: 84h attribute: rwos default value: 0000h size: 16 bits. 13.6.1.60 offset 86h: sid - subsystem identifier register (bm:d0:f3) offset: 86h attribute: rw/ro default value: 0000h size: 16 bits. 13.6.1.61 offset d8h: px_capid?pci-x* capability identifier register (bm:d0:f3) offset: d8h attribute: ro default value: 07h size: 8 bits this register identifies this item in the capabilities list as a pci-x register set. it returns 07h when read. 13.6.1.62 offset d9h: px_nxtcp?pci-x* next capabilities pointer register (bm:d0:f3) offset: d9h attribute: ro default value: 0h size: 8 bits this register points to the next item in the capabilities list, as required by the pci 2.3 specification. bits type reset description 7:0 ro d8 next pointer: points to the pci-x capability as the next capability. bits type reset description 15:0 rwos 0000 subsystem vendor identifier: indicates the manufacturer of the subsystem. this field is write once and is locked down until a power good reset occurs. bits type reset description 15:0 rwos 0000 subsystem identifier: indicates the subsystem as identified by the vendor. this field is write once and is locked down until a bridge reset occurs (not the pci bus reset). bits type reset description 7:0 ro 07h capability identifier (capid): a value of 07h in this field indicates this is a pci-x capabilities list. bits type reset description 7:0 ro 0h next capabilities pointer (ncptr): last capability structure in the link, so it is hardwired to 0.
472 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.63 offset dah: px_ssts?pci-x* secondary status register (bm:d0:f3) offset: da?dbh attribute: rwc, ro default value: 0003h size: 16 bits this register controls various modes and features of the pci-x device. 13.6.1.64 offset dch: px_bsts?pci-x* bridge status register (bm:d0:f3) offset: dc ? dfh attribute: rwc, ro default value: 00030000h (pci bus a) size: 32 bits 00030002h (pci bus b) bits type reset description 15:9 ro 0 reserved. 8:6 ro x secondary clock frequency (scf): this field is set with the frequency of the secondary bus. the values are: bitsmax frequencyclock period 000pci moden/a 00166 pci-x mode 115 010100 pci-x mode 110 011133 pci-x mode 17.5 1xxreservedreserved 5ro 0 split request delayed. (srd): the pci express to pci-x bridge will never set this bit. 4ro 0 split completion overrun (sco): the pci express to pci-x bridge will never set this bit. 3rwc 0 unexpected split completion (usc): 0 = this bit is cleared by writing a 1 to it. 1 = this bit is set if an unexpected split completion with a requester id equal to the pci express to pci-x bridge's pci/pci-x secondary bus number is received on the pci/pci-x interface. 2rwc 0 split completion discarded (scd): 0 = this bit is cleared by writing a 1 to it. 1 = pci express to pci-x bridge discarded a split completion moving toward the secondary bus because the requester would not accept it. 1ro 1 133 mhz capable (c133): hardwired to 1; indicates that the pci express to pci-x bridge?s pci/pci-x interface is capable of 133 mhz operation in pci-x mode. 0ro 1 64-bit device (d64): hardwired to 1; indicates the width of the secondary bus as 64 bits. bits type reset description 31:22 ro 0 reserved . note: bit[31] is set to 0 as pci-x 533 is not supported bit[30] is set to 0 as pci-x 266 is not supported bit[29] is set to 0 as ecc for secondary interface is not supported bit[28:23] is reserved per pci-x spec 2.0 bit[22] is set to 0 as ecc for primary interface is not supported 21 ro 0 split request delayed (srd): hardwired to 0. this bit is not supported by the pci express to pci-x bridge, because it will never be in a position where it cannot issue a request. 20 ro 0 split completion overrun (sco): hardwired to 0. this bit is not set by the pci express to pci-x bridge because the pci express to pci-x bridge never requests on the pci express interface more data than it has room to receive. 19 rwc 0 unexpected split completion (usc): the pci express to pci-x bridge sets this field when a completion on the pci express bus is destined to one of the pci bus segment (either a or b) but the tag does not match.
intel ? 631xesb/632xesb i/o controller hub datasheet 473 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.65 offset e8h: bg_eccsts ? bridge ecc control and status register (bm:d0:f3) offset: e8 ? eb attribute: rwc, ros, ro default value: 00000001h (parity mode) size: 32 bits 18 ro 0 split completion discarded (scd): hardwired to 0. this does not apply to the pci express interface. 17 ro 0 133 mhz capable (c133): hardwired to 1. this field does not apply to pci express. 16 ro 0 64-bit device (d64): this field really does not apply to the pci express interface, but is set to '1' to be software-compatible. 15:8 rw 0 reserved. 7:3 ro 0 reserved. 2:0 ro 03h function number (fnum): the function number is 03h. bits type reset description bits type reset description 31 ro 0-pci/pci-x mode1 mode (mode): writes to this register do not affect this bit unless the ecc control update enable bit is a 1 in the data pattern being written. bit value mode of operation 0b pci interface is in parity mode. 1b reserved 30 rwt 0 disable single-bit-error correction (dsbec): if the bus is in parity mode, this bit has no meaning and is ignored by the pci express-to-pci-x bridge. writes to this register do not affect this bit unless the ecc control update enable bit is a 1 in the data pattern being written. 29 ro 0 reserved. 28 wt 0 reserved. 27:24 ros 0 reserved. 23:20 ros 0 reserved. 19:16 ros 0 reserved. 15:8 ros 0 syndrome (synd): the syndrome indicates information about the bit or bits that are in error. refer to the pci-x protocol addendum to the pci local bus specification revision 2.0, section 5. 7 ros 0 reserved. 6:4 rwc 0 reserved. 3 rwc 0 reserved. 2 rwc 0 reserved. 1ro 0 reserved. 0ro 1 reserved.
474 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.6.1.66 offset ech: px_eccfa ? bridge ecc error first address register (bm:d0:f3) offset: ec ? efh attribute: ros default value: 00000000h size: 32 bits least significant address bits of the failing transaction. 13.6.1.67 offset f0h: px_eccsa ? bridge ecc error second address register (bm:d0:f3) offset: f0 ? f3h attribute: ros default value: 00000000h size: 32 *bits most significant address bits of the failing transaction. 13.6.1.68 offset f4h: px_eccattr ? bridge ecc attribute register (bm:d0:f3) offset: f4 ? f7h attribute: ros default value: 00000000h size: 32 bits describes the attributes of the ecc. bits type reset description 31:0 ros 0 ecc first address (ecc_fa): if the ecc error phase register is non-zero (indicating that an error has been captured), this register indicates the contents of the ad[31::00] bus for the address phase of the transaction that included the error. if the ecc error phase is zero, the contents of this register are undefined. this register always records the least significant 32 bits of the address, regardless of the type or length of the transaction, or the phase in which the error occurred. the pci express to pci-x bridge stores information from the failing transaction directly from the bus ( uncorrected ), even if correction of the error is possible. bits type reset description 31:0 ros 0 ecc second address (ecc_sa): if the ecc error phase register is non-zero (indicating that an error has been captured), this register indicates the contents of the ad[63::32] bus for the address phase of the transaction that included the error. if the ecc error phase is zero, the contents of this register are undefined. this register always records the most significant 32 bits of the address, regardless of the type or length of the transaction, or the phase in which the error occurred. the pci express to pci-x bridge stores information from the failing transaction directly from the bus (uncorrected), even if correction of the error is possible. bits type reset description 31:0 ros 0 ecc attribute (ecc_at): if the ecc error phase register bits are non-zero (indicating that an error has been captured), the ecc attribute register indicates the contents of the ad[31::00] bus for the attribute phase of the transaction that included the error. if the ecc error phase registers is zero, the contents of this register are undefined. this register records the contents of the bus during the attribute phase, regardless of the type or length of the transaction, or the phase in which the error occurred. the pci express-to- pci-x bridge stores information in this register from the failing transaction directly from the bus (uncorrected), even if correction of the error is possible.
intel ? 631xesb/632xesb i/o controller hub datasheet 475 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.7 pci express* to pci-x* bridges (bm:d0:f3) enhanced the enhanced pci express configuration access mechanism utilizes a flat memory- mapped address space to access device configuration registers. in this case, the memory address determines the configuration register accessed and the memory data returns the contents of the addressed register. refer to the section 7.9 in the pci express* base specification , revision 1.0 for details. 13.7.1 configuration registers 13.7.1.1 offset 100h: pci express_capid ? pci express* capability identifier register (bm:d0:f3) offset: 100 ? 103h attribute: ro default value: 30000000h size: 32 bits this register stores the pci express extended capability id value. 13.7.1.2 offset 104h: pex_errunc_sts ? pci express uncorrectable error status register (bm:d0:f3) offset: 104h attribute: rw default value: 0000000h size: 32 bits the uncorrectable error status register report s error status of individual uncorrectable error sources. an individual error status bit that is set to 1? indicates that a particular error occurred; software may clear an error st atus by writing a 1 to the respective bit. bits type reset description 31:20 ro 000h next pci express extended capability pointer: next is the power budgeting capability. 19:16 ro 1h capability version number: pci express advanced error reporting extended capability version number. 15:0 ro 0001h pci express extended capability id (exp_xcapid): pci express extended capability id indicating advanced error reporting capability. bits type reset description 31:21 ro 0 reserved 20 rw 0 unsupported request error status: set by pci express bridge/switch whenever an unsupported request is detected on pci express including those that master abort on the switch or signaled by the shpc (on write data parity errors ? config and mem) 19 ro 0 ecrc check: pci express bridge/switch does not do ecrc check and this bit is never set. 18 rw 0 malformed tlp: pci express bridge/switch sets this bit when it receives a malformed tlp. header logging is done. 17 rw 0 receiver overflow: pci express bridge/switch would set this if receive buffers overflow 16 rw 0 unexpected completion: pci express bridge/switch sets this bit whenever it receives a completion with a requestor id that does not match or when it receives a completion with a matching requestor id but an unexpected tag field. pci express bridge/switch logs the header of the unexpected completion 15 rw 0 completer abort: pci express bridge/switch sets this bit and logs the header associated with the request when shpc signals a completer abort. pci express bridge/switch logs the header.
476 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.7.1.3 offset 108h: pex_errunc_msk - pci express uncorrectable error mask register offset: 108h attribute: rw default value: 0000000h size: 32 bits the uncorrectable error mask register controls reporting of individual uncorrectable errors by device to the host bridge via a pci express error message and also the logging of the header. refer to pci express spec for details of how the mask bits function. a masked error (respective bit set in mask register) is not reported to the host bridge by pci express bridge/switch, nor is the header logged (status bits unaffected by the mask bit) or the pointer updated. there is a mask bit per bit of the uncorrectable error status register. 14 rw 0 completion timeout: pci express bridge/switch sets this bit when inbound memory/config/io reads do not receive completions within 16- 32ms. 13 rw 0 flow control protocol error status: pci express bridge/switch sets this bit when there is a flow control protocol error detected 12 rw 0 poisoned tlp received: pci express bridge/switch sets this bit when a poisoned tlp is received from pci express. note that internal queue errors in the j and b unit s are not covered by this bit. pci express bridge/switch logs the header of the poisoned tlp packet 11:5 ro 0 reserved 4 rw 0 data link protocol error: pci express bridge/switch sets this bit when there is a data link protocol error detected. 3:1 ro 0 reserved 0 undefined undefined undefined ? the value read from this bit is undefined. in previous versions of this specification, this bi t was used to indicate a link training error. system software must ignore the value read from this bit. system software is permitted to write any value to this bit. bits type reset description bits type reset description 31:21 ro 0 reserved 20 rw 0 unsupported request error mask 19 ro 0 ecrc check: n/a to pci express bridge/switch mask 18 rw 0 malformed tlp mask 17 rw 0 receiver overflow mask 16 rw 0 unexpected completion mask 15 rw 0 completer abort mask 14 rw 0 completion timeout mask 13 rw 0 flow control protocol error status mask 12 rw 0 poisoned tlp received mask 11:5 ro 0 reserved 4 rw 0 data link protocol error mask 3:1 ro 0 reserved 0 undefined undefined undefined ? the value read from this bit is undefined. in previous versions of this specification, this bi t was used to indicate a link training error. system software must ignore the value read from this bit. system software is permitted to write any value to this bit.
intel ? 631xesb/632xesb i/o controller hub datasheet 477 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.7.1.4 offset 10ch: pex_errunc_sev - pci express uncorrectable error severity (bm:d0:f3) offset: 10ch attribute: rw default value: see description size: 32 bits the uncorrectable error severity register controls whether an individual uncorrectable error is reported as a fatal error. an uncorrectable error is reported as fatal (err_fatal) when the corresponding error bit in the severity register is set. if the bit is cleared, the corresponding error is considered non-fatal (err_nonfatal). 13.7.1.5 offset 110h: pex_errcor_sts - pci express correctable error status (bm:d0:f3) offset: 110h attribute: rw default value: 0000h size: 32 bits the correctable error status register reports error status of individual correctable error sources on a pci express device. when an individual error status bit is set to 1? it indicates that a particular error occurred; software may clear an error status by writing a 1 to the respective bit. bits type reset description 31:21 ro 0 reserved 20 rw 0 unsupported request error severity 19 ro 0 ecrc check: n/a to intel ? 631xesb/632xesb i/o controller hub severity 18 rw 1 malformed tlp severity 17 rw 1 receiver overflow severity 16 rw 0 unexpected completion severity 15 rw 0 completer abort severity 14 rw 0 completion timeout severity 13 rw 1 flow control protocol error severity 12 rw 0 poisoned tlp received severity 11:5 ro 0 reserved 4 rw 1 data link protocol error severity 3:1 ro 0 reserved 0undefinedundefined undefined ? the value read from this bit is undefined. in previous versions of this specification, this bi t was used to indicate a link training error. system software must ignore the value read from this bit. system software is permitted to write any value to this bit. bits type reset description 31:13 ro 0 reserved 12 rw 0 replay timer timeout status: pci express bridge/switch sets this bit if replay timer timeout happened. 11:9 ro 0 reserved 8 rw 0 replay number rollover status: pci express bridge/switch sets this bit when the replay number rolls over from 11 to 00. 7 rw 0 bad dllp status: pci express bridge/switch sets this bit on crc errors on dllp
478 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.7.1.6 offset 114h: pex_errcor_msk - pci express correctable error mask (bm:d0:f3) offset: 114h attribute: rw default value: see description size: 32 bits the correctable error mask register controls reporting of individual correctable errors via err_cor message. a masked error (respective bit set in mask register) is not reported to the host bridge by pci express bridge/switch. there is a mask bit per error in the correctable error status register. 13.7.1.7 offset 118h: pex_adverr_ctl - advanced error control and capabilities register (bm:d0:f3) offset: 118h attribute: rw default value: 0000h size: 32 bits the register gives the status and control for ecrc checks and also the pointer to the first uncorrectable error that happened. 6 rw 0 bad tlp status: pci express bridge/switch sets this bit on crc errors on tlp 5:1 ro 0 reserved 0 rw 0 receiver error: pci express bridge/switch sets this bit when the physical layer detects a receiver error. bits type reset description bits type reset description 31:13 ro 0 reserved 12 rw 0 replay timer timeout mask: pci express bridge/switch sets this bit if replay timer timeout happened. 11:9 ro 0 reserved 8 rw 0 replay number rollover mask: pci express bridge/switch sets this bit when the replay number rolls over from 11 to 00. 7 rw 0 bad dllp mask: pci express bridge/switch sets this bit on crc errors on dllp 6 rw 0 bad tlp mask: pci express bridge/switch sets this bit on crc errors on tlp 5:1 ro 0 reserved 0 rw 0 receiver error mask: pci express bridge/switch sets this bit when the physical layer detects a receiver error. bits type reset description 31:9 ro 0 reserved 8 ro 0 ecrc check enable: intel ? 631xesb/632xesb i/o controller hub does not support ecrc check and this bit is reserved 7 ro 0 ecrc check capable: intel ? 631xesb/632xesb i/o controller hub is not ecrc check capable 6 ro 0 ecrc generation enable: intel ? 631xesb/632xesb i/o controller hub cannot generated ecrc and this bit is ignored by intel ? 631xesb/632xesb i/o controller hub 5 ro 0 ecrc generation capable: intel ? 631xesb/632xesb i/o controller hub cannot generated ecrc 4:0 ro 0 the first error pointer: identifies the bit position of the first error reported in the uncorrectable error status register. this register rearms itself (which does not change its current value) once the error status bit pointed to by the pointer is cleared by software by writing a 1 to that status bit.
intel ? 631xesb/632xesb i/o controller hub datasheet 479 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.7.1.8 offset 11ch: pex_hdrlog - pci express transaction header log register (bm:d0:f3) offset: 118h attribute: rw default value: 0 size: 128 bits transaction header log for pci express error. 13.7.1.9 offset 12ch: pcixerrunc_sts - uncorrectable pci/x error status register (bm:d0:f3) offset: 12c ? 12dh attribute: rwcs, ro default value: 0000h size: 16 bits this register reports error status of individual errors generated on the pci-x bus interface. an individual error status bit that is set to a 1 indicates that a particular error occurred; software may clear an error status by writing a 1 to the respective bit. refer to section 10 of the pci express* to pci/pci-x* bridge specification revision 1.0 for more details. bits type reset description 127:0 ro 0 header of the pci express packet in error. once an error is logged in this register, it remains locked for further error loggings until the time the software clears the status bit that cause the header log that is, the error pointer is rearmed to log again. bits type reset description 15:14 ro 0 reserved. 13 rwcs 0 internal bridge error (iberr): accounts for internal data errors in the pci express to pci-x bridge?s data queues in either direction. the pci express to pci-x bridge does not log any headers for this error. 12 rwcs 0 pci-x serr# assertion detected (serrad): the pci express to pci-x bridge sets this bit whenever it detects the pci serr# pin is asserted. there is no header logging associated with the setting of this bit. 11 rwcs 0 pci-x perr# assertion detected (perrad): the pci express to pci-x bridge sets this bit whenever it detects the pci bus perr# pin asserted when it is mastering a write (memory, i/o or configuration) or a split/delayed read completion on the pci bus. the pci express to pci-x bridge logs the header of the transaction in which the perr# was detected (regardless of the data phase in which it is detected), in the pci-x header log register. note that this status bit and also the associated header log are always done irrespective of whether the perr# detected was because of a pci bus error or because of a forwarded poisoned data. but error message escalation to pci express is done only if the perr# detected and was a not because of forwarded poisoned data. 10 rwcs 0 pci delayed transaction timer expired (dtte): this bit is set by the pci express to pci-x bridge if it detects that a dt timeout has happened on a hard dt read stream or on an inbound i/o or configuration transaction. no header is logged. 9rwcs 0 pci-x uncorrectable address error detected (uaded): the pci express to pci-x bridge sets this bit when it is the target of an inbound transaction and an address parity error was detected by the pci express to pci-x bridge (regardless of whether the bus mode is pci or pci-x mode 1). the pci express to pci-x bridge logs the header of the transaction in which it detected the address/attribute parity error in the pci/x header log register. 8rwcs 0 pci-x uncorrectable attribute error detected (uated): the pci express to pci-x bridge sets this bit when it is the target of an inbound transaction and an attribute parity error was detected by the pci express to pci-x bridge. the pci express to pci-x bridge logs the header of the transaction in which it detected the address/attribute parity error in the pci-x header log register.
480 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.7.1.10 offset 130h: pcixerrunc_msk? uncorrectable pci-x* error mask register (bm:d0:f3) offset: 130 ? 133h attribute: rws, ro default value: 000017a8h size: 32 bits this register masks the reporting of individual pci-x uncorrectable errors via a pci express error message. there is one mask bit per error. note that the status bits are set in the status register irrespective of whether the mask bit is on or off. the mask bit also affects the header log for the pci-x transaction. if the mask bit is on, the header is not logged and no error message is generated on the pci express bus. 7rwcs 0 pci-x uncorrectable data error detected (uded): the pci express-to- pci-x bridge sets this bit in all pci modes (pci and pci-x mode 1) when it is the target of an inbound transaction or when it is mastering a pci delayed read with target sourcing data to the pci express to pci-x bridge, and a data parity error was detected by the pci express to pci-x bridge. the pci express to pci- x bridge logs the header of the transaction in which it detected the data parity error in the pci-x header log register. 6rwcs 0 uncorrectable split completion message data error (uscmde): this bit is set when a split completion message is received with an uncorrectable data parity error. 5rwcs 0 unexpected split completion error (usce): this bit is set when a completion is received from pci-x that matches the bus number range on the primary side of the pci express to pci-x bridge, but the requestorid:tag combination does not match one of the non-posted transactions that pci express to pci-x bridge has outstanding on the pci-x bus. 4ro 0reserved. 3rwcs 0 pci-x detected master abort status: the pci express to pci-x bridge sets this bit when it is the master of a request transaction on the pci bus and it received a master abort. the header is logged for that transaction. 2rwcs 0 pci-x detected target-abort (optional in spec): the pci express to pci-x bridge sets this bit when it is the master of a request transaction on the pci-x bus and it received a target abort. the header is logged for that transaction. 1rwcs 0 pci-x detected split completion master abort: the pci express to pci-x bridge sets this bit when a split completion it sends on the pci-x bus (mode 1) master aborts. the pci express to pci-x bridge logs the header of the split completion. 0rwcs 0 pci-x detected split completion target abort (optional in spec): the pci express-to-pci-x bridge sets this bit when a split completion it sends on the pci-x bus (mode 1) target aborts. the pci express to pci-x bridge logs the header. bits type reset description bits type reset description 31:14 ro 0 reserved. 13 rws 0 internal bridge error (ibe) 12 rws 1 pci-x serr# assertion mask (seam) 11 rws 0 pci-x perr# assertion mask (peam) 10 rws 1 pci delayed transaction timer expired mask (dttem) 9rws 1 pci-x uncorrectable address parity error mask (uaddem) 8rws 1 pci-x uncorrectable attribute parity error mask (uattem) 7rws 1 uncorrectable data parity error mask (udem) 6rws 0 uncorrectable split completion message data error mask (uscmde) 5rws 1 unexpected split completion error (usce) 4ro 0reserved. 3rws 1 pci-x master-abort mask (mam)
intel ? 631xesb/632xesb i/o controller hub datasheet 481 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.7.1.11 offset 134h: sec_unc_errsev ? secondary uncorrectable error severity register (bm:d0:f3) offset: 134 ? 135h attribute: rws, ro default value: 2340h size: 16 bits this register controls whether an individual pci-x uncorrectable error is reported as a fatal or non-fatal error. a pci-x uncorrectable error, if enabled, is reported as fatal (an err_fatal message will be generated on the pci express bus) when the corresponding error bit in the severity register is set to a 1. if a bit is set to 0, then the corresponding error, if enabled, is considered non-fatal (and thus a err_nonfatal message will be generated on the pci express bus). there is one mask bit per error. 2rws 0 pci-x received target-abort mask (rtam) 1rws 0 master-abort on split completion mask (mascm) 0rws 0 target-abort on split completion mask (tascm) bits type reset description bits type reset description 15:14 ro 0 reserved. 13 rws 0 internal bridge error severity (ibes) 12 rws 1 pci-x serr# assertion severity (seas) 11 rws 0 pci-x perr# assertion severity (peas) 10 rws 0 delayed transaction timer expired severity (dttes) 9rws 1 pci-x uncorrectable address error severity (uaddes) 8rws 1 pci-x uncorrectable attribute error severity (uattes) 7rws 0 pci-x uncorrectable data error severity (udes) 6rws 1 uncorrectable split completion message data error severity (uscmdes) 5rws 0 unexpected split completion error severity (usces) 4ro 0reserved. 3rws 0 pci-x master-abort severity (mas) 2rws 0 pci-x received target-abort severity (rtas) 1rws 0 pci-x master-abort on split completion severity (mascs) 0rws 0 pci-x target-abort on split completion severity (tascs)
482 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.7.1.12 offset 138h: pcixerrunc_ptr ? uncorrectable error pointer register (bm:d0:f3) offset: 138 ? 13bh attribute: ros, ro default value: 00000000h size: 32 bits this register points to the bit position of the first error reported in the uncorrectable pci/pci-x error status register (offset 12ch). this register is rearmed when the bit position pointed to is cleared in the associated status register. the pointer value is not updated when this register is rearmed. 13.7.1.13 offset 13ch: pcixhdlog ? pci-x* uncorrectable transaction header log register (bm:d0:f3) offset: 13c ? 143h attribute: ros default value: 0h size: 128 bits the log in this register captures the header for the transaction that generated an error. once an error is logged in this register, this register is locked from further error loggings, until software clears the status bit corresponding to the 1 st uncorrectable error that occurred. when this bit is cleare d by software, this re gister is rearmed for further header logs. bits type reset description 31:4 ro 0 reserved. 3:0 ros 0 uncorrectable pci/pci-x first error pointer (upfep): this register points to the first error that was logged in the uncorrectable pci/pci-x error status register (offset 12ch). this register rearms itself when the status bit corresponding to the error which this register is pointing to is cleared by software writing a 1 to the bit. bits type reset description 127:64 ros 0 transaction address (txnad): these bits capture the 64-bit value transferred on pxad[31:0] during the 1 st and 2 nd address phase of the transaction in which an error was detected. the 1 st address phase is logged to bits 95:64 and the 2 nd address phase is logged to bits 127:96. in case of a 32-bit address, bits 127:96 will be set to all zeros. the address is logged on all error conditions. 63:44 ro 0 reserved. 43:40 ros 0 transaction command upper (txncu): this captures the value of pxc/ be[3:0]# during the 2 nd address phase of a dac transaction contains the 4- bit value transferred on pxc/be[3:0]# during the 2 nd attribute phase of the transaction. 39:36 ros 0 transaction command lower (txncl): this captures the value of pxc/ be[3:0]# during the 1 st address phase of the transaction. contains the 4-bit value transferred on pxc/be[3:0]# during the 1 st attribute phase of the transaction. 35:0 ros 0 transaction attribute (txnat): this carries the attribute of the transaction. contains the 36-bit value transferred on pxc/be[3:0]# and pxad[31:0]) during the attribute phase of the transaction. when the bus is in pci mode, these bits are all zeros.
intel ? 631xesb/632xesb i/o controller hub datasheet 483 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.7.1.14 offset 14ch: pcixdlog ? pci-x* uncorrectable/correctable data error log register (bm:d0:f3) offset: 14c ? 153h attribute: ros default value: 0000000000000000h size: 64 bits this register is logged for all correctable or uncorrectable data parity errors. 13.7.1.15 offset 154h: pcixerrlogctl ? other pci-x* error logs and control register (bm:d0:f3) offset: 154 ? 155h attribute: rwcs, ros, ro default value: 0000000000000000h size: 32 bits this register contains bits logged for uncorrectable data parity errors (in pci or pci-x mode 1), uncorrectable address/attribute parity errors and pci req# line of failure. bits type reset description 63:0 ros 0 pci-x data log (pdl): this register is logged with the pci data bus value whenever the pci express to pci-x bridge is the target of a data transfer and it detects a data parity error (correctable or uncorrectable). this register is not defined if the log valid bit in the error lo g and control register is not set. this register re-arms itself for loading again when software clears the log valid bit by writing a 1 to that bit. for 32-bit data transfers, only the lower 32 bits are logged. bits type reset description 31:19 ro 0 reserved. 18 ros 0 data log (data_log): a ?1? indicates the data log is from a correctable ecc data error. a 0 indicates the data log is from an uncorrectable ecc/parity error. this bit is logged along with the dlog register and is rearmed when the log valid bit is cleared. this is also only valid when the log valid bit is set by the pci express to pci-x bridge. 17 ros 0 pci-x attribute parity (pp) : this bit indicates that parity was detected in the attribute phase of a request and completion. when the pci express to pci-x bridge is driving, it is the valu e driven. when the pci express to pci-x bridge is receiving, it is the value captur ed. this bit is only valid in pci-x mode 1 operation. this bit is logged along with the secondary header log register (sec_hdlog, offset 13ch) when there is an attribute parity error. this bit is not loaded for any other error conditions. this bit remains set until software clears the corresponding status bit in the secondary uncorrectable error status register (sec_unc_errsts, offset 12ch). 16 ros 0 pci address high (pah): this bit represents the parity detected in the 2 nd phase (upper 32-bits) of a dual address cycle. this bit is forced to ?0? if the address was a single address cycle. when the pci express to pci-x bridge is driving, this bit contains the value driven. when the pci express to pci-x bridge is receiving, this bit contains th e value captured. this is only valid in pci-x mode 1 operation. this bit is logged along with the secondary header log register (sec_hdlog, offset 13ch) when there is an address parity error (this bit is never loaded independently of the secondary header log register). this bit is not loaded for any other error conditions. this bit remains set until software clears the corresponding status bit in the secondary uncorrectable error status register (sec_unc_errsts, offset 12ch).
484 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 15 ros 0 pci address low (pal): for pci-x requests and all pci cycles, this bit represents the parity detected in the 1 st phase (lower 32-bits) of a dual address cycle, or just the address of a regular address cycle. for pci-x completions, this bit represents the 1 st clock (requester attributes) driven in the completion cycle. when the pci express to pci-x bridge is driving, this bit contains the value driven. when the pci express to pci-x bridge is receiving, this bit contains the value captured. this is only valid in pci-x mode 1 operation. this bit is logged along with the secondary header log register (sec_hdlog, offset 13ch) when there is an address parity error (this bit is never loaded independently of the pci-x header log register). this bit is not loaded for any other error conditions. this bit remains set until software clears the corresponding status bit in the secondary uncorrectable error status register (sec_unc_errsts, offset 12ch). 14 rwcs 0 req# log valid (rlv): this bit is set when req# log bits (bits 13:11 of this register) are valid. clearing this bit will re-enable logging into the req# log register bits. 13:11 ros 0 req# log (rl): these bits capture the req# of the pci agent mastering the transaction when the pci express to pci-x bridge detected a correctable or uncorrectable address, attribute or data parity error. that is, the req# log is valid when either of the three error conditions occur that cause either of bits 9:7 to be set or any errors occur that cause the error phase register bits in the bridge ecc control and status register (bg_eccsts, offset e8h) to be non- zero. once a log is made in the req# lo g, further logging of the req# log bits is stopped till the req# log valid bit (bit 14 of this register) is cleared. note that this register is not dependent on the clearing of status bits in the secondary uncorrectable error status register (sec_unc_errsts, offset 12ch) or the bridge ecc attribute register (bg_eccattr, offset f4h), to rearm itself. 000 = req0 001 = req1 010 = req2 011 = req3 100 = req4 101 = req5 110 = req6 111 = reserved 10 ro 0 reserved. 9rwcs 0 log valid (logv): this is set by the pci express to pci-x bridge whenever it logs a value in the data log register (offset 14ch) and also the byte enable log bits in this register (offset 154h, bits 7:0). software clears this register by writing a 1, which will rearm the data log register (offset 14ch) and enable the byte enable log register bits (bits 7:0 of this register) to start loading again. 8ros 0 data bus width (dbw): this bit is set if the data logged in the data log register is 64 bits. otherwise this bit is clear. when clear the upper 32 bits of the data log registers are invalid. 7:0 ros 0 pci-x byte enable log (pxbel): this error is logged whenever the pci express to pci-x bridge is the target of a data transfer and it detects a data parity/ecc error (correctable or uncorrectable). this register is logged along with the data log register. this register is not defined if the log valid bit (bit 9 above) is not set. this register re-arms itself for loading again when software clears the log valid bit by writing a one to that bit. bits type reset description
intel ? 631xesb/632xesb i/o controller hub datasheet 485 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.8 hot-plug controller registers the standard hot-plug controller allows pci card removal, replacement and addition without powering down the system. 13.8.1 memory-mapped registers 13.8.1.1 offset 00h: shpc_baseoff?shpc base offset register offset: 00?03h attribute: ro default value: 00000000h size: 32 bits this register is used by software and/or bios (in conjunction with the shpc base address register, shpc_bar) to determine the memory base address of the shpc working register set. this register must be accessed initially via configuration space. table 13-5. hot-plug controller register summary address offset symbol register name default access 00-03h shpc_baseoff shpc base offset register 00000000h ro 04-07h slots_avail1 slots available i register 00000000h rwo 08-0bh slots_avail2 slots available ii register 00000000h rwo 0c-0fh slot_config slot configuration register 00000000h rwo 10-11h sbus_config secondary bus configuration register 0000h ro 12h shpc_msi_cntl shpc msi control register 00h ro 13h shpc_prog_if shpc programming interface register 01h ro 14-15h cont_command controller command register 0000h rw 16-17h cont_command_s ts controller command status register 0000h ro 18-1bh int_loc interrupt locator register 00000000h ro 1c-1fh serr_loc serr locator register 00000000h ro 20-23h serr_int controller serr-int enable register 0000000fh rw, rwc 24-3bh 1_lsr 1 st logical slot register 8f00xxxxh rw 2_lsr 2 nd logical slot register rw 3_lsr 3 rd logical slot register rw 4_lsr 4 th logical slot register rw 5_lsr 5 th logical slot register rw 6_lsr 6 th logical slot register rw bits type reset description 31:0 ro 0 shpc base offset (shpcbo): this field contains the byte offset that must be added to the 64-bit base address register shpc_bar in the pci express to pci-x bridge?s configuration space to access the shpc working register set using memory-mapped accesses. the pci express to pci-x bridge has the working register set starting at offset 0.
486 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.8.1.2 offset 04h: slots_avail1?slots available i register offset: 04?07h attribute: rwo, ro default value: 00000000h size: 32 bits the shpc uses five number of slots available fields organized into two slots available registers, this register (slots_avail1) being the first and slots_avail2 (offset 08h) being the second. each number of slots available field specifies the maximum number of hot-plug slots that are permitted to be enabled at the given bnpci/pci-x mode and frequency on the associated pci/pci-x bus segment. if a bnpci/pci-x bus segment does not support any hot-plug slots at a given bnpci/pci-x mode and frequency, then the corresponding number of slots available field must be 0. this register is initialized by bios with platform specific loading information to be later used by os/driver. 13.8.1.3 offset 08h: slots_avail2?slots available ii register offset: 08?0bh attribute: rwo, ro default value: 00000000h size: 32 bits the shpc uses five number of slots available fields organized into two slots available registers, slots_avail1 (offset 04h) being the first and this register, slots_avail2, being the second. each number of slots available field specifies the maximum number of hot-plug slots that are permitted to be enabled at the given bnpci/pci-x mode and frequency on the associated pci/pci-x bus segment. if a bnpci/pci-x bus segment does not support any hot-plug slots at a given bnpci/pci-x mode and frequency, then the corresponding number of slots available field must be 0. this register is initialized by bios with platform specific loading information to be later used by os/driver. bits type reset description 31:29 ro 0 reserved. 28:24 rwo 0 number of slots available (133 mhz pci-x): maximum number of hot- plug slots available to be enabled when the bus is running at 133 mhz pci-x mode. 23:21 ro 0 reserved. 20:16 rwo 0 number of slots available (100 mhz pci-x): maximum number of hot- plug slots available to be enabled when the bus is running at 100 mhz pci-x mode. 15:13 ro 0 reserved. 12:8 rwo 0 number of slots available (66 mhz pci-x): maximum number of hot-plug slots available to be enabled when the bus is running at 66 mhz pci-x mode. 7:5 ro 0 reserved. 4:0 rwo 0 number of slots available (33 mhz conventional pci): maximum number of hot-plug slots available to be enabled when the bus is running at 33 mhz conventional pci mode. bits type reset description 31:5 rwo 0 reserved. 4:0 rwo 0 number of slots available (66 mhz conventional pci): maximum number of hot-plug slots available to be enab led when the bus is running at 66 mhz conventional pci mode.
intel ? 631xesb/632xesb i/o controller hub datasheet 487 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.8.1.4 offset 0ch: slot_config?slot configuration register offset: 0c?0fh attribute: rwo, ro default value: 00000000h size: 32 bits this register describes the configuration of the slots controlled by the shpc. 13.8.1.5 offset 10h: sbus_config?secondary bus configuration register offset: 10 - 11h attribute: ro default value: 0000h size: 16 bits this register describes the configuration of the secondary bus segment that contains the hot-plug slots controlled by the shpc. bits type reset description 31 rwo 0 attention button implemented (abi): this bit specifies whether the hot- plug slots controlled by this shpc implement the optional attention button. if this bit is set, attention buttons are implemented on every pci slot controlled by this shpc. 30 rwo 0 mrl sensor implemented (mrlsi): this bit specifies whether mrl sensors are implemented on the hot-plug slots controlled by the shpc. if this bit is set, the platform provides an mrl sensor for each slot controlled by this shpc. 29 rwo 0 physical slot number up/down (psnud): this bit specifies the direction of enumeration of external slot labels, beginning with the value in the physical slot number field (psn) of this register (offset 0c-0fh, bits 26:6). if this bit is set, each external slot label increments by 1 from the value in the physical slot number field. if this bit is cleared, each external slot label decrements by 1 from the value in the physical slot number field. 28:27 ro 0 reserved. 26:16 rwo 0 physical slot number (psn): this field specifies the physical slot number of the device addressed by the first device number (fdn) at bits 12:8 of this register. this field must be hardware initialized to a value that assigns all slots (controlled by this shpc) a slot number that is globally unique within the chassis. 15:13 ro 0 reserved. 12:8 rwo 0 first device number (fdn): this field contains the device number assigned to the first hot-plug slot on this bus segment. 7:5 ro 0 reserved. 4:0 ro 0 number of slots implemented (nsi): this field contains the number of hot-plug slots connected to the shpc (that is, the number of slots controlled by the shpc). this field must not return a value of 0. (if the controller does not control any slots in the system, the shpc capabilities list item must not appear in the capabilities list). bits type reset description 15:4 ro 0 reserved. 3:0 ro 0 current bus segment speed/mode (cbss): indicates the current speed and mode at which the pci bus segment is operating. 0000b = 33 mhz conventional pci mode 0001b = 66 mhz conventional pci mode 0010b = 66 mhz pci-x mode 1 0011b = 100 mhz pci-x mode 1 0100b = 133 mhz pci-x mode 1 0101b = reserved 0110b = reserved 0111b = reserved
488 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.8.1.6 offset 12h: shpc_msi_cntl?shpc msi control register offset: 12h attribute: ro default value: 00h size: 8 bits this register indicates the specific message number that will be used by the shpc to signal an interrupt when using message signaled interrupts (msi). 13.8.1.7 offset 13h: shpc_prog_if?shpc programming interface register offset: 13h attribute: ro default value: 01h size: 8 bits this register identifies the format of the working register set. 13.8.1.8 offset 14h: cont_command?controller command register offset: 14?15h attribute: rw, ro default value: 0000h size: 16 bits bits type reset description 7:5 ro 0 reserved. 4:0 ro 0 shpc interrupt message number (shpc_imn): reflects the multiple message enable field (mmen, bits 6:4) of the msi capability control register (msi_mcntl, offset 5eh). bits type reset description 7:0 ro 01h shpc programming interface (shpc_pi): identifies the format of the shpc working register set. a value of 01h identifies the shpc working register set format defined in the standard hot-plug controller and subsystem specification , revision 1.0. bits type reset description 15:13 ro 0 reserved. 12:8 rw 0 target slot (ts): this field selects the target slot for a slot operation command. for example, writing a 2 to this field would select the 2 nd slot for the slot operation command. software is permitted to write the command code and target slot fields simultaneously. however, software is not required to write these fields simultaneously. if the fields are not written simultaneously, the slot operation command targets the slot associated with the current value in this register. if the command is not a slot operation command, this field is ig nored. when this field is read, it returns the value that was last written to it, even after the command has completed. 7:0 rw 0 command code (ccode): command to be executed by the shpc. writing to this field triggers the shpc to begin executing the command. refer to the standard hot-plug controller and subsystem specification , rev 1.0 for command encodings. when read, this field returns the command code that was last written to it, even after the command has completed.
intel ? 631xesb/632xesb i/o controller hub datasheet 489 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.8.1.9 offset 16h: cont_command_sts?controller command status register offset: 16?17h attribute: ro default value: 0000h size: 16 bits 13.8.1.10 offset 18h: int_loc?interrupt locator register offset: 18 ? 1bh attribute: ro default value: 00000000h size: 32 bits interrupt locator register for software to easily identify the source of an interrupt. bits type reset description 15:4 ro 0 reserved. 3:1 ro 0 controller command error code (ccec): this field shows the result of the last command completed by the shpc. this field is updated when the controller busy bit (offset 16-17h, bit 0) transitions from 1 to 0 (indicating a command completion). if the command failed, the appropriate bit is set. if none of the bits in this field are set, the command completed successfully. 0ro 0 controller busy (cb): this bit changes from 0 to 1 when a command code is written to the controller command register (cont_command, offset 14h). it stays set until the shpc has completed executing the command. the shpc ignores writes to the controller command register (cont_command, offset 14h) while this bit is set. this bit changes from 1 to 0 when the shpc finishes executing a command. the shpc must not set this bit for any other reason. for example, this bit must not be set to 1 when the shpc automatically powers down the slot in response to detecting a mrl open event. bits type reset description 31:7 ro 0 reserved. 6:1 ro 0 slot n interrupt pending bits (snipb): a set bit in this field indicates an interrupt pending condition on the associated slot. an interrupt pending condition occurs when the shpc detects a slot event, and the event?s command complete interrupt mask bit (ccim, bit 2) in the slot serr-int mask field (, offset h) is cleared. multiple bits are set if multiple slots have an interrupt pending. clearing all bits in the slot event latch field (sel, bit) of the slot?s logical slot register (lsr_slot, offset 24h) clears that slot?s bit in this field. 0ro 0 command complete interrupt pending (ccip): the state of this bit is 1 when the command completion detected bit (ccim, bit 2) in the slot serr- int mask field (offset 20h) is set indicating a command completion and the command complete interrupt mask bit located in the controller serr-int enable register (serr_int, offset 20h) is cleared.
490 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.8.1.11 offset 1ch: serr_loc?serr locator register offset: 1c ? 1fh attribute: ro default value: 00000000h size: 32 bits system interrupt locator register for software to easily identify the source of interrupt. 13.8.1.12 offset 20h: serr_int?controller serr_int enable register offset: 20?23h attribute: rw, rwc, ro default value: 0000000fh size: 32 bits this register enables and disables serr an d system generation and reports global controller events. 13.8.2 offset 24h ? 40h: logical slot registers (lsr) 1 to 6 software uses the logical slot register for the following: ? current status of the slot bits type reset description 31:8 ro 0 reserved. 7:1 ro 0 slot n serr pending (snsp): a set bit in this field indicates an serr pending condition on the associated sl ot. an serr pending condition occurs when the shpc detects a slot event capable of generating an serr and that event?s serr mask bit in the slot serr-int mask field is cleared. multiple bits are set if multiple slots have an serr pe nding. clearing all bits in the slot?s slot event latch field that are capable of generating an serr clears that slot?s bit in this field. 0ro 0 arbiter serr pending (asp): the state of this bit is 1 when the arbiter timeout detected bit (atd, bit 17) in the controller serr-int enable register (serr_int, offset 20h) is set and the arbiter serr mask bit (asm, bit 3) is cleared. bits type reset description 31:18 ro 0 reserved. 17 rwc 0 arbiter timeout detected (atd): this bit is set when the shpc detects an arbiter timeout. 16 rwc 0 command completion detected (ccd): this bit is set when the controller busy bit (cb, bit 0) in the controller command status register (cont_command_sts, offset 16h) transitions from 1 to 0 (indicating a command completion). 15:4 ro 0 reserved. 3rw 1 arbiter serr mask (asm): when this bit is set, arbiter timeout serrs are masked. this bit is a mask and does not affect whether the arbiter timeout detected bit (bit 17 of this register) is set. when this mask is cleared and the global serr mask (bit 1 below) is clear, arbiter timeout error will cause err_nonfatal message on the pci express bus, provided the serr enable bit is set in the pcicmd register or the nonfatal message enable bit is set in the pci express capability. 2rw 1 command complete interrupt mask (ccim): when this bit is set, command completion interrupts are masked. this bit is a mask and does not affect whether the command completion detected bit (ccd, bit 16 of this register) is set. 1rw 1 global serr mask (gsm): when this bit is set, serr generation from the shpc is masked. 0rw 1 global interrupt mask (gim): when this bit is set, system interrupt generation by the shpc is masked. this bit is a mask and does not affect any bits in the interrupt locator register. this bit has no effect on whether the wakeup signal is asserted.
intel ? 631xesb/632xesb i/o controller hub datasheet 491 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) ? configure system interrupts and system errors generated by the slots ? detect pending events on the slots each logical slot register is formatted as follows and is described in further detail below. 13.8.2.1 ssts ? slot status field, bits [15:0] this field contains status information about the slot. 31 24 23 16 15 0 slot serr-int mask slot event latch slot status bits type reset description 15 ro 0 reserved. 14 ro 0 reserved. 13:12 ro xx pci-x capability (pci-x_cap): these bits report the current pci-x capability of the add-in card installed in the slot. these bits are not valid if the slot is empty. if the slot is occupied, these bits are valid regardless of the state of the slot or speed/mode of the bus. 00b non pci-x 01b 66 mhz pci-x mode 10b reserved 11b 133 mhz pci-x mode 11:10 ro xx prsnt1#/prsnt2# (prsnt1_prsnt2): these bits report the current de- bounced state of the prsnt1# and prsnt2# slot pins. these bits are valid regardless of the state of the slot or speed/mode of the bus. 00b card present; 7.5w 01b card present; 25w 10b card present; 15w 11b slot empty 9ro x 66 mhz capable (hp_m66en): this bit reports whether the add-in card is capable of running at 66 mhz conventional mode. this bit is latched as the slot is powered up or enabled, regardless of the current speed/mode of the bus. if this bit is 1, the card is capable of running at 66 mhz conventional mode. if this bit is 0, the card is only capable of 33 mhz conventional mode operation. this bit is valid only when the slot is occupied and powered or enabled. 8ro x mrl sensor (hp_mrl): this bit reports the current state of the mrl as reported by the de-bounced mrl sensor input signal. if this bit is 1, the mrl sensor is reporting that the mrl is open. if this bit is 0, the mrl sensor is reporting that the mrl is closed. 7ro x attention button (attbut): this bit reports the current state of the de- bounced attention button input signal for this slot. if this bit is 1, the attention button is being pressed. if this bit is 0, the attention button is not being pressed. 6ro x power fault (pwrflt): this bit reports the current state of the power fault latch in the power controller circuitry for this slot. if this bit is 1, a power fault (either isolated or connected) has been detected by the power controller circuitry.
492 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 13.8.2.2 sevl ? slot event latch field, bits [23:16] the slot event latch field reports all latched events detected by the shpc. 13.8.2.3 ssim ? slot serr-int mask field, bits [31:24] the slot serr-int mask field controls masking and unmasking of system interrupts and system errors generated from events detected by the shpc. 5:4 ro x attention indicator state (attnind): this field reports the current state of the attention indicator associated with the slot. 00b reserved 01b on 10b blink 11b off 3:2 ro x power indicator state (pwrind): this field reports the current state of the power indicator associated with the slot. 00b reserved 01b on 10b blink 11b off 1:0 ro x slot state (slot_status): this field reports the current state of the slot. 00b reserved 01b powered only 10b enabled 11b disabled bits type reset description bits type reset description 23:21 ro 0 reserved. 20 rwc 0 connected power fault detected (cpfd): this bit is set when a connected power fault is detected by the power control circuitry for this slot. 19 rwc 0 mrl sensor change detected (mrlscd): this bit is set when the mrl sensor bit in the slot status field changes state indicating a change in the position of the mrl. 18 rwc 0 attention button press detected (abpd): this bit is set when the attention button bit in the slot status field transitions from 0 to 1 indicating the attention button has been pressed. 17 rwc 0 isolated power fault detected (ipfd): this bit is set when an isolated power fault is detected by the power control circuitry for this slot. 16 rwc 0 card presence change detected (cpcd): this bit is set when a change is detected on the prsnt1#/prsnt2# bits defined in the slot status field. bits type reset description 31 ro 0 reserved. 30 rw 1 connected power fault serr mask (cpfsm): if this bit is set, serr assertions from connected power fault detected are masked. the state of this bit has no effect on the state of the connected power fault detected bit. when this bit is clear, then connected power faults can cause err_fatal message on the pci express bus provided the serr enable bit in the pcicmd register is set or the err_fatal enable bit is set in the pci express capability. 29 rw 1 mrl sensor serr mask (mssm): if this bit is set, serr assertions from mrl sensor change detected are masked. the state of this bit has no effect on the state of the mrl sensor change detected bit. when this bit is clear, then mrl sensor error condition can cause err_fatal message on the pci express bus provided the serr enable bit in the pcicmd register is set or the err_fatal enable bit is set in the pci express capability.
intel ? 631xesb/632xesb i/o controller hub datasheet 493 pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0) 28 rw 1 connected power fault interrupt mask (cpfim): if this bit is set, system interrupts from connected power fault detected are masked. the state of this bit has no effect on the state of the connected power fault detected bit. 27 rw 1 mrl sensor interrupt mask (msim): if this bit is set, system interrupts from mrl sensor change detected are masked. the state of this bit has no effect on the state of the mrl sensor change detected bit. 26 rw 1 attention button interrupt mask (abim): if this bit is set, system interrupts from attention button press detected are masked. the state of this bit has no effect on the state of the attention button press detected bit. 25 rw 1 isolated power fault interrupt mask (ipfim): if this bit is set, system interrupts from isolated power fault detected are masked. the state of this bit has no effect on the state of the isolated power fault detected bit. 24 rw 1 card presence interrupt mask (cpim): if this bit is set, system interrupts from card presence change detected are masked. the state of this bit has no effect on the state of the card presence change detected bit. bits type reset description
494 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* bridge, switch, and endpoints registers (bm:d0:f0/f1/f3, bp:d0:f0, bp:d1:f0, bp:d2:f0)
intel ? 631xesb/632xesb i/o controller hub datasheet 495 intel ? high definition audio controller registers (d27:f0) 14 intel ? high definition audio controller registers (d27:f0) the intel high definition audio controller resides in pci device 27, function 0 on bus 0. this function contains a set of dma engines that are used to move samples of digitally encoded data between system memory and external codecs. note: all registers in this function (including memory-mapped registers) must be addressable in byte, word, and d-word quantities. th e software must always make register accesses on natural boundaries (that is, d-word accesses must be on d-word boundaries; word accesses on word boundaries, and so forth). in addition, the memory-mapped register space must not be accessed with the lock semantic exclusive-access mechanism. if software attempts exclusive-access mechanisms to the intel high definition audio memory-mapped space, the results are undefined. 14.1 intel ? high definition audio pci configuration space (high definition audio? d27:f0) note: address locations that are not shown should be treated as reserved. table 14-1. intel ? high definition audio pci register address map (high definition audio?d27:f0) (sheet 1 of 2) offset mnemonic register name default access 00-01h vid vendor identification 8086h ro 02-03h did device identification 269ah ro 04-05h pcicmd pci command 0000h r/w, ro 06-07h pcists pci status 0010h r/wc, ro 08h rid revision identification see register description. ro 09h pi programming interface 00h ro 0ah scc sub class code 02h ro 0bh bcc base class code 04h ro 0ch cls cache line size 00h r/w 0dh lt latency timer 00h ro 0eh headtype header type 00h ro 10-13h azbarl intel high definition audio lower base address (memory) 00000004h r/w, ro 14-17h albaru intel high definition audio upper base address (memory) 00000000h r/w 2c-2dh svid subsystem vendor identification 0000h r/wo 2e-2fh sid subsystem identification 0000h r/wo 34h capp capability list pointer 50h ro 3ch intln interrupt line 00h r/w 3dh intpn interrupt pin see register description ro 40h azctl intel high definition audio control 00h r/w, ro
496 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.1.1 vid?vendor identification register (high definition audio controller?d27:f0) offset: 00-01h attribute: ro default value: 8086h size: 16 bits 44h tcsel traffic class select 00h r/w 50-51h pid pci power management capability id 6001h ro 52-53h pc power management capabilities c842 ro 54-57h pcs power management control and status 00000000h r/w, ro, r/wc 60-61h mid msi capability id 7005h ro 62-63h mmc msi message control 0080h r/w, ro 64-67h mmla msi message lower address 00000000h r/w, ro 68-6bh mmua smi message upper address 00000000h r/w 6c-6dh mmd msi message data 0000h r/w 70-71h pxid pci express capability identifiers 0010h ro 72-73h pxc pci express capabilities 0001h ro 74-77h devcap device capabilities 00000000h ro 78-79h devc device control 0800h r/w, ro 7a-7bh devs device status 0010h ro 100-103h vccap virtual channel enhanced capability header 13010002h ro 104-107h pvccap1 port vc capability register 1 00000001h ro 108-10bh pvccap2 port vc capability register 2 00000000h ro 10c-10d pvcctl port vc control 0000h ro 10e-10fh pvcsts port vc status 0000h ro 110-103h vc0cap vc0 resource capability 00000000h ro 114-117h vc0ctl vc0 resource control 800000ffh r/w, ro 11a-11bh vc0sts vc0 resource status 0000h ro 11c-11fh vcicap vci resource capability 00000000h ro 120-123h vciclt vci resource control 00000000h r/w, ro 126-127h vcists vci resource status 0000h ro 130-133h rccap root complex link declaration enhanced capability header 00010005h ro 134-137h esd element self description 05000100h ro 140-143h l1desc link 1 description 00000001h ro 148-14bh l1addl link 1 lower address see register description ro 14c-14fh l1addu link 1 upper address see register description ro table 14-1. intel ? high definition audio pci register address map (high definition audio?d27:f0) (sheet 2 of 2) offset mnemonic register name default access bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel. intel vid = 8086h
intel ? 631xesb/632xesb i/o controller hub datasheet 497 intel ? high definition audio controller registers (d27:f0) 14.1.2 did?device identification register (high definition audio controller?d27:f0) offset address: 02?03h attribute: ro default value: 269ah size: 16 bits 14.1.3 pcicmd?pci command register (high definition audio controller?d27:f0) offset address: 04?05h attribute: r/w, ro default value: 0000h size: 16 bits bit description 15:0 device id ? ro. this is a 16-bit value assigned to the intel high definition audio controller. bit description 15:11 reserved 10 interrupt disable (id) ? r/w. 0= the intx# signals may be asserted. 1= the intel high definition audio controller?s intx# signal will be de-asserted note that this bit does not affect the generation of msis. 9 fast back to back enable (fbe) ? ro. not implemented. hardwired to 0. 8 serr# enable (serr_en) ? ro. not implemented. hardwired to 0. 7 wait cycle control (wcc) ? ro. not implemented. hardwired to 0. 6 parity error response (per) ? ro. not implemented. hardwired to 0. 5 vga palette snoop (vps). not implemented. hardwired to 0. 4 memory write and invalidate enable (mwie) ? ro. not implemented. hardwired to 0. 3 special cycle enable (sce). not implemented. hardwired to 0. 2 bus master enable (bme) ? r/w. controls standard pci express bus mastering capabilities for memory and i/o, reads and writes. note that this bit also controls msi generation since msis are essentially memory writes. 0 = disable 1 = enable 1 memory space enable (mse) ? r/w. enables memory space addresses to the intel high definition audio controller. 0 = disable 1 = enable 0 i/o space enable (iose)?ro. hardwired to 0 since the intel high definition audio controller does not implement i/o space.
498 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.1.4 pcists?pci status register (high definition audio controller?d27:f0) offset address: 06?07h attribute: ro, r/wc default value: 0010h size: 16 bits 14.1.5 rid?revision identification register (high definition audio controller?d27:f0) offset: 08h attribute: ro default value: see bit description size: 8 bits 14.1.6 pi?programming interface register (high definition audio controller?d27:f0) offset: 09h attribute: ro default value: 00h size: 8 bits bit description 15 detected parity error (dpe) ?ro. not implemented. hardwired to 0. 14 serr# status (serrs) ? ro. not implemented. hardwired to 0. 13 received master abort (rma) ? r/wc. software clears this bit by writing a 1 to it. 0 = no master abort received. 1 = the intel high definition audio controller sets this bit when, as a bus master, it receives a master abort. when set, the intel high definition audio controller clears the run bit for the channel that received the abort. 12 received target abort (rta) ? ro. not implemented. hardwired to 0. 11 signaled target abort (sta) ? ro. not implemented. hardwired to 0. 10:9 devsel# timing status (dev_sts) ? ro. does not apply. hardwired to 0. 8 data parity error detected (dped) ? ro. not implemented. hardwired to 0. 7 fast back to back capable (fb2bc) ? ro. does not apply. hardwired to 0. 6 reserved. 5 66 mhz capable (66mhz_cap) ? ro. does not apply. hardwired to 0. 4 capabilities list (cap_list) ? ro. hardwired to 1. indicates that the controller contains a capabilities pointer list. the first item is pointed to by looking at configuration offset 34h. 3 interrupt status (is) ? ro. 0 = this bit is 0 after the interrupt is cleared. 1 = this bit is 1 when the intx# is asserted. note that this bit is not set by an msi. 2:0 reserved. bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register bit description 7:0 programming interface ? ro.
intel ? 631xesb/632xesb i/o controller hub datasheet 499 intel ? high definition audio controller registers (d27:f0) 14.1.7 scc?sub class code register (high definition audio controller?d27:f0) address offset: 0ah attribute: ro default value: 02h size: 8 bits 14.1.8 bcc?base class code register (high definition audio controller?d27:f0) address offset: 0bh attribute: ro default value: 04h size: 8 bits 14.1.9 cls?cache line size register (high definition audio controller?d27:f0) address offset: 0ch attribute: r/w default value: 00h size: 8 bits 14.1.10 lt?latency timer register (high definition audio controller?d27:f0) address offset: 0dh attribute: ro default value: 00h size: 8 bits 14.1.11 headtyp?header type register (high definition audio controller?d27:f0) address offset: 0eh attribute: ro default value: 00h size: 8 bits bit description 7:0 sub class code (scc) ? ro. 02h = audio device bit description 7:0 base class code (bcc) ? ro. 04h = multimedia device bit description 7:0 cache line size? r/w. implemented as r/w register, but has no functional impact bit description 7:0 latency timer? ro. hardwired to 00 bit description 7:0 header type? ro. hardwired to 00.
500 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.1.12 azbarl?high definition audio lower base address register (high definition audio controller?d27:f0) address offset: 10h attribute: r/w, ro default value: 00000004h size: 32 bits 14.1.13 azbaru?intel ? high definition audio upper base address register (high definition audio controller?d27:f0) address offset: 14h attribute: r/w default value: 00000000h size: 32 bits 14.1.14 svid?subsystem vendor identification register (high definition audio controller?d27:f0) address offset: 2c?2dh attribute: r/wo default value: 0000h size: 16 bits the svid register, in combination with the subsystem id register (d27:f0:2eh), enable the operating environment to distinguish one audio subsystem from the other(s). this register is implemented as write-once register. once a value is written to it, the value can be read back. any subsequent writes will have no effect. this register is not affected by the d3 hot to d0 transition. 14.1.15 sid?subsystem identification register (high definition audio controller?d27:f0) address offset: 2e?2fh attribute: r/wo default value: 0000h size: 16 bits the sid register, in combination with the subsystem vendor id register (d27:f0:2ch) make it possible for the operating environment to distinguish one audio subsystem from the other(s). this register is implemented as write-once register. once a value is written to it, the value can be read back. any subsequent writes will have no effect. bit description 31:14 lower base address (lba) ? r/w. base address for the intel high definition audio controller?s memory mapped configuration registers. 16 kbytes are requested by hardwiring bits 13:4 to 0?s. 13:4 ro. hardwired to 0?s 3 prefetchable (pref)?ro. hardwired to 0 to indicate that this bar is not prefetchable 2:1 address range (addrng)?ro. hardwired to 10b, indicating that this bar can be located anywhere in 64-bit address space. 0 space type (sptyp)?ro. hardwired to 0. indicates this bar is located in memory space. bit description 31:0 upper base address (uba) ? r/w. upper 32 bits of the base address for the intel high definition audio controller?s memory mapped configuration registers. bit description 15:0 subsystem vendor id ? r/wo.
intel ? 631xesb/632xesb i/o controller hub datasheet 501 intel ? high definition audio controller registers (d27:f0) this register is not affected by the d3 hot to d0 transition. t 14.1.16 capptr?capabilities pointer register (audio?d27:f0) address offset: 34h attribute: ro default value: 50h size: 8 bits this register indicates the offset for the capability pointer. 14.1.17 intln?interrupt line register (high definition audio controller?d27:f0) address offset: 3ch attribute: r/w default value: 00h size: 8 bits 14.1.18 intpn?interrupt pin register (high definition audio controller?d27:f0) address offset: 3dh attribute: ro default value: see description size: 8 bits bit description 15:0 subsystem id ? r/wo. bit description 7:0 capabilities pointer (cap_ptr) ? ro. this field indicates that the first capability pointer offset is offset 50h (power management capability) bit description 7:0 interrupt line (int_ln) ? r/w. this data is not used by the intel ? 631xesb/632xesb i/o controller hub. it is used to communicate to software the interrupt line that the interrupt pin is connected to. bit description 7:4 reserved. 3:0 interrupt pin? ro. this reflects the value of d27ip.zip (chipset config registers:offset 3110h:bits 3:0).
502 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.1.19 azctl?intel ? high definition audio control register (high definition audio controller?d27:f0) address offset: 40h attribute: r/w, ro default value: 00h size: 8 bits 14.1.20 tcsel?traffic class select register (high definition audio controller?d27:f0) address offset: 44h attribute: r/w default value: 00h size: 8 bits this register assigned the value to be placed in the tc field for transactions over the intel ? 631xesb/632xesb i/o controller hub backbone. corb and rirb data will always be assigned tc0. bit description 7:4 reserved. 3 bitclk detect clear (clkdetclr) ? r/w. 0 = when a 0 is written to this bit, the clock detect circuit is operational and maybe enabled. 1 = writing a 1 to this bit clears bit 1 (clkdet#) in this register. clkdet# bit remains clear when this bit is set to 1. note: this bit is not affected by the d3 hot to d0 transition. 2 bitclk detect enable (clkdeten) ? r/w. 0 = latches the current state of bit 1 (clkdet#) in this register 1 = enables the clock detection circuit note: this bit is not affected by the d3 hot to d0 transition. 1 bitclk detected inverted (clkdet#)? ro. this bit is modified by hardware. it is set to 0 when the bitclk toggling is detected , indicating the presence of an ac?97 codec on the link note: bit 2 (clkdeten) and bit 3 (clkdetclr) in this register control the operation of this bit and must be manipulated correctly in order to get a valid clkdet# indicator. 0 high definition audio/ac?97 signal mode ? r/w. this bit selects the shared intel high definition audio/ac?97 signals. 0 = ac?97 mode is selected (default) 1 = intel high definition audio mode is selected notes: 1. this bit has no affect on the visibility of the intel high definition audio and ac?97 function configuration space. 2. this bit is in the resume well and only clear on a power-on reset. software must not makes assumptions about the reset state of this bit and must set it appropriately. bit description 7:3 reserved. 2:0 high definition audio traffi c class assignment (tcsel) ? r/w. this register assigns the value to be placed in the traffic class field for input data, output data, and buffer descriptor transactions sent to the intel ? 631xesb/632xesb i/o controller hub backbone. 000 = tc0 001 = tc1 010 = tc2 011 = tc3 100 = tc4 101 = tc5 110 = tc6 111 = tc7 note: these bits are not reset on d3 hot to d0 transition; however, they are reset by pltrst#.
intel ? 631xesb/632xesb i/o controller hub datasheet 503 intel ? high definition audio controller registers (d27:f0) 14.1.21 pid?pci power management capability id register (high definition audio controller?d27:f0) address offset: 50h attribute: ro default value: 6001h size: 16 bits 14.1.22 pc?power management capabilities register (high definition audio controller?d27:f0) address offset: 52h attribute: ro default value: c842h size: 16 bits 14.1.23 pcs?power management control and status register (high definition audio controller?d27:f0) address offset: 54h attribute: ro, r/w, r/wc default value: 00000000h size: 32 bits bit description 15:8 next capability (next)? ro. hardwired to 60h. points to the next capability structure (msi) 7:0 cap id (cap)? ro. hardwired to 01h. indicates that this pointer is a pci power management capability. bit description 15:11 pme support? ro. hardwired to 11001b. indicates pme# can be generated from d3 and d0 states. 10 d2 support? ro. hardwired to 0. indicates that d2 state is not supported. 9 d1 support?ro. hardwired to 0. indicates that d1 state is not supported. 8:6 aux current?ro. hardwired to 001b. reports 55ma maximum suspend well current required when in the d3 cold state. 5 device specific initialization (dsi)?ro. hardwired to 0. indicates that no device specific initialization is required. 4 reserved 3 pme clock (pmec)?ro. does not apply. hardwired to 0. 2:0 version?ro. hardwired to 010b. indicates support for version 1.1 of the pci power management specification. bit description 31:24 data?ro. does not apply. hardwired to 0. 23 bus power/clock control enable? ro. does not apply. hardwired to 0. 22 b2/b3 support?ro. does not apply. hardwired to 0. 21:16 reserved. 15 pme status (pmes) ?r/wc. 0 = software clears the bit by writing a 1 to it. 1 = this bit is set when the intel high definition audio controller would normally assert the pme# signal independent of the state of the pme_en bit (bit 8 in this register) this bit in the resume well and only cleared on a power-on reset. software must not make assumptions about the reset state of this bit and must set it appropriately 14:9 reserved
504 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.1.24 mid?msi capability id register (high definition audio controller?d27:f0) address offset: 60h attribute: ro default value: 7005h size: 16 bits 14.1.25 mmc?msi message control register (high definition audio controller?d27:f0) address offset: 62h attribute: ro, r/w default value: 0080h size: 16 bits 8 pme enable (pmee) ?r/w. 0 = disable 1 = when set and if corresponding pmes also set, the intel high definition audio controller sets the ac97_sts bit in the gpe0_sts register (pmbase + 28h). the ac97_sts bit is shared by ac?97 and intel high definition audio functions since they are mutually exclusive. this bit in the resume well and only cleared on a power-on reset. software must not make assumptions about the reset state of this bit and must set it appropriately 7:2 reserved 1:0 power state (ps) ?r/w. this field is used both to determine the current power state of the intel high definition audio controller and to set a new power state. 00 = d0 state 11 = d3 hot state others = reserved notes: ? if software attempts to write a value of 01b or 10b in to this field, the write operation must complete normally; however, the data is discarded and no state change occurs. ? when in the d3 hot states, the intel high definition audio controller?s configuration space is available, but the io and memory space are not. additionally, interrupts are blocked. ? when software changes this value from d3 hot state to the d0 state, an internal warm (soft) reset is generated, and software must re-initialize the function. bit description bit description 15:8 next capability (next)? ro. hardwired to 70h. points to the pci express capability structure. 7:0 cap id (cap)? ro. hardwired to 05h. indicates that this pointer is a msi capability bit description 15:8 reserved 7 64b address capability (64add)? ro. hardwired to 1. indicates the ability to generate a 64-bit message address 6:4 multiple message enable (mme)?ro. normally this is a r/w register. however since only 1 message is supported, these bits are hardwired to 000 = 1 message. 3:1 multiple message capable (mmc)?ro. hardwired to 0 indicating request for 1 message. 0 msi enable (me) ?r/w. 0 = an msi may not be generated 1 = an msi will be generated instead of an intx signal.
intel ? 631xesb/632xesb i/o controller hub datasheet 505 intel ? high definition audio controller registers (d27:f0) 14.1.26 mmla?msi message lower address register (high definition audio controller?d27:f0) address offset: 64h attribute: ro, r/w default value: 00000000h size: 32 bits 14.1.27 mmua?msi message upper address register (high definition audio controller?d27:f0) address offset: 68h attribute: r/w default value: 00000000h size: 32 bits 14.1.28 mmd?msi message data register (high definition audio controller?d27:f0) address offset: 6ch attribute: r/w default value: 0000h size: 16 bits 14.1.29 pxid?pci express capability id register (high definition audio controller?d27:f0) address offset: 70h attribute: ro default value: 0010h size: 16 bits 14.1.30 pxc?pci express capabilities register (high definition audio controller?d27:f0) address offset: 72h attribute: ro default value: 0001h size: 16 bits bit description 31:2 message lower address (mla) ? r/w. lower address used for msi message. 1:0 reserved. bit description 31:0 message upper address (mua) ? r/w. upper 32-bits of address used for msi message. bit description 15:0 message data (md) ? r/w. data used for msi message. bit description 15:8 next capability (next)? ro. hardwired to 0. indicate s that this is the last capability structure in the list. 7:0 cap id (cap)?ro. hardwired to 10h. indicates that this pointer is a pci express capability structure bit description 15:14 reserved 13:9 interrupt message number (imn)?ro. hardwired to 0. 8 slot implemented (si)?ro. hardwired to 0. 7:4 device/port type (dpt)?ro. hardwired to 0. indicates that this is a pci express endpoint device. 3:0 capability version (cv)?ro. hardwired to 0001b. indicates version #1 pci express capability
506 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.1.31 devcap?device capabilities register (high definition audio controller?d27:f0) address offset: 74h attribute: rwo, ro default value: 00000000h size: 32 bits 14.1.32 devc?device control register (high definition audio controller?d27:f0) address offset: 78h attribute: r/w, ro default value: 0800h size: 16 bits bit description 31:28 reserved 27:26 captured slot power limit scale (spls)?ro. hardwired to 0. 25:18 captured slot power limit value (splv)?ro. hardwired to 0. 17:15 reserved 14 power indicator present ?ro. hardwired to 0. 13 attention indicator present?ro. hardwired to 0. 12 attention button present?ro. hardwired to 0. 11:9 endpoint l1 acceptable latency?rwo. 8:6 endpoint l0s acceptable latency?rwo. 5 extended tag field support?ro. hardwired to 0. indicates 5-bit tag field support 4:3 phantom functions supported?ro. hardwired to 0. indicates that phantom functions not supported 2:0 max payload size supported?ro. hardwired to 0. indicates 128b maximum payload size capability bit description 15 reserved 14:12 max read request size?ro. hardwired to 0 enabling 128b maximum read request size. 11 no snoop enable (nsnpen) ?r/w. 0 = the intel high definition audio controller will no t set the no snoop bit. in this case, isochronous transfers will not use vc1 (vci) even if it is enabled since vc1 is never snooped. isochronous transfers will use vc0. 1 = the intel high definition audio controller is permitted to set the no snoop bit in the requester attributes of a bus master transaction. in this case, vc0 or vc1 may be used for isochronous transfers. note: this bit is not reset on d3 hot to d0 transition; however, it is reset by pltrst#. 10 auxiliary power enable?ro. hardwired to 0, indicating that intel high definition audio device does not draw aux power 9 phantom function enable?ro. hardwired to 0 disabling phantom functions. 8 extended tag field enable?ro. hardwired to 0 enabling 5-bit tag. 7:5 max payload size?ro. hardwired to 0 indicating 128b. 4 enable relaxed ordering?ro. hardwired to 0 disabling relaxed ordering. 3 unsupported request reporting enable?ro. not implemented. hardwired to 0. 2 fatal error reporting enable?ro. not implemented. hardwired to 0. 1 non-fatal error reporting enable?ro. not implemented. hardwired to 0. 0 correctable error reporting enable?ro. not implemented. hardwired to 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 507 intel ? high definition audio controller registers (d27:f0) 14.1.33 devs?device status register (high definition audio controller?d27:f0) address offset: 7ah attribute: ro default value: 0010h size: 16 bits 14.1.34 vccap?virtual channel enhanced capability header (high definition audio controller?d27:f0) address offset: 100h attribute: ro default value: 13010002h size: 32 bits 14.1.35 pvccap1?port vc capability register 1 (high definition audio controller?d27:f0) address offset: 104h attribute: ro default value: 00000001h size: 32 bits bit description 15:6 reserved 5 transactions pending?ro. 0 = indicates that completions for all non-posted requests have been received 1 = indicates that intel high definition audio controller has issued non-posted requests which have not been completed. 4 aux power detected?ro. hardwired to 1 indicating the device is connected to resume power 3 unsupported request detected?ro. not implemented. hardwired to 0. 2 fatal error detected?ro. not implemented. hardwired to 0. 1 non-fatal error detected?ro. not implemented. hardwired to 0. 0 correctable error detected?ro. not implemented. hardwired to 0. bit description 31:20 next capability offset?ro. hardwired to 130h. po ints to the next capability header, which is the root complex link declaration enhanced capability header. 19:16 capability version?ro. hardwired to 1h. 15:0 pci express extended capability?ro. hardwired to 0002h. bit description 31:12 reserved. 11:10 port arbitration table entry size?ro. hardwired to 0 since this is an endpoint device. 9:8 reference clock?ro. hardwired to 0 since this is an endpoint device. 7 reserved. 6:4 low priority extended vc count?ro. hardwired to 0. indicates that only vc0 belongs to the low priority vc group 3 reserved. 2:0 extended vc count?ro. hardwired to 001b. indicates that 1 extended vc (in addition to vc0) is supported by intel high definition audio controller.
508 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.1.36 pvccap2?port vc capability register 2 (high definition audio controller?d27:f0) address offset: 108h attribute: ro default value: 00000000h size: 32 bits 14.1.37 pvcclt?port vc control register (high definition audio controller?d27:f0) address offset: 10ch attribute: ro default value: 0000h size: 16 bits 14.1.38 pvcsts?port vc status register (high definition audio controller?d27:f0) address offset: 10eh attribute: ro default value: 0000h size: 16 bits 14.1.39 vc0cap?vc0 resource capability register (high definition audio controller?d27:f0) address offset: 110h attribute: ro default value: 00000000h size: 32 bits bit description 31:24 vc arbitration table offset?ro. hardwired to 0 indicating that a vc arbitration table is not present. 23:8 reserved. 7:0 vc arbitration capability?ro. hardwired to 0. th ese bits are not applicable since the intel high definition audio controller reports a 0 in the low priority extended vc count bits in the pvccap1 register. bit description 15:4 reserved. 3:1 vc arbitration select?ro. hardwired to 0. normally these bits are r/w. however, these bits are not applicable since the intel high definition audio cont roller reports a 0 in the low priority extended vc count bits in the pvccap1 register 0 load vc arbitration table?ro. hardwired to 0 since an arbitration table is not present. bit description 15:1 reserved. 0 vc arbitration table status?ro. hardwired to 0 since an arbitration table is not present. bit description 31:24 port arbitration table offset?ro. hardwired to 0 since this field is not valid for endpoint devices 23 reserved. 22:16 maximum time slots?ro. hardwired to 0 since this field is not valid for endpoint devices 15 reject snoop transactions?ro. hardwired to 0 since this field is not valid for endpoint devices. 14 advanced packet switching?ro. hardwired to 0 si nce this field is not valid for endpoint devices 13:8 reserved. 7:0 port arbitration capability?ro. hardwired to 0 since this field is not valid for endpoint devices
intel ? 631xesb/632xesb i/o controller hub datasheet 509 intel ? high definition audio controller registers (d27:f0) 14.1.40 vc0ctl?vc0 resource control register (high definition audio controller?d27:f0) address offset: 114h attribute: r/w, ro default value: 800000ffh size: 32 bits 14.1.41 vc0sts?vc0 resource status register (high definition audio controller?d27:f0) address offset: 11ah attribute: ro default value: 0000h size: 16 bits 14.1.42 vcicap?vci resource capability register (high definition audio controller?d27:f0) address offset: 11ch attribute: ro default value: 00000000h size: 32 bits bit description 31 vc0 enable?ro. hardwired to 1 for vc0. 30:27 reserved. 26:24 vc0 id?ro. hardwired to 0 since the first vc is always assigned as vc0 23:20 reserved. 19:17 port arbitration select?ro. hardwired to 0 since this field is not valid for endpoint devices 16 load port arbitration table?ro. hardwired to 0 since this field is not valid for endpoint devices 15:8 reserved. 7:0 tc/vc0 map ?r/w, ro. bit 0 is hardwired to 1 since tc0 is always mapped vc0. bits [7:1] are implemented as r/w bits. bit description 15:2 reserved. 1 vc0 negotiation pending?ro. hardwired to 0 since this bit does not apply to the integrated intel high definition audio device 0 port arbitration table status?ro. hardwired to 0 since this field is not valid for endpoint devices bit description 31:24 port arbitration table offset?ro. hardwired to 0 since this field is not valid for endpoint devices. 23 reserved. 22:16 maximum time slots?ro. hardwired to 0 since this field is not valid for endpoint devices 15 reject snoop transactions?ro. hardwired to 0 since this field is not valid for endpoint devices 14 advanced packet switching?ro. hardwired to 0 since this field is not valid for endpoint devices 13:8 reserved 7:0 port arbitration capability?ro. hardwired to 0 si nce this field is not valid for endpoint devices
510 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.1.43 vcictl?vci resource control register (high definition audio controller?d27:f0) address offset: 120h attribute: r/w, ro default value: 00000000h size: 32 bits 14.1.44 vcists?vci resource status register (high definition audio controller?d27:f0) address offset: 126h attribute: ro default value: 0000h size: 16 bits 14.1.45 rccap?root complex link declaration enhanced capability header register (high definition audio controller?d27:f0) address offset: 130h attribute: ro default value: 00010005h size: 32 bits bit description 31 vci enable ?r/w. 0 = vci is disabled 1 = vci is enabled note: this bit is not reset on d3 hot to d0 transition; however, it is reset by pltrst#. 30:27 reserved. 26:24 vci id ?r/w. this field assigns a vc id to the vci resource. this field is not used by the hardware, but it is r/w to avoid confusing software. 23:20 reserved. 19:17 port arbitration select?ro. hardwired to 0 since this field is not valid for endpoint devices 16 load port arbitration table?ro. hardwired to 0 since this field is not valid for endpoint devices 15:8 reserved. 7:0 tc/vci map?ro, r/w. this field indicates the tcs that are mapped to the vci resource. bit 0 is hardwired to 0 indicating that it cannot be mapped to vci. bits [7:1] are implemented as r/w bits. this field is not used by the hardware, but it is r/w to avoid confusing software. bit description 15:2 reserved. 1 vci negotiation pending?ro. does not apply. hardwired to 0. 0 port arbitration table status?ro. hardwired to 0 since this field is not valid for endpoint devices. bit description 31:20 next capability offset?ro. hardwired to 0 indicating this is the last capability. 19:16 capability version?ro. hardwired to 1h. 15:0 pci express extended capability id?ro. hardwired to 0005h.
intel ? 631xesb/632xesb i/o controller hub datasheet 511 intel ? high definition audio controller registers (d27:f0) 14.1.46 esd?element self description register (high definition audio controller?d27:f0) address offset: 134h attribute: ro default value: 05000100h size: 32 bits 14.1.47 l1desc?link 1 description register (high definition audio controller?d27:f0) address offset: 140h attribute: ro default value: 00000001h size: 32 bits 14.1.48 l1addl?link 1 lower address register (high definition audio controller?d27:f0) address offset: 148h attribute: ro default value: see register description size: 32 bits 14.1.49 l1addu?link 1 upper address register (high definition audio controller?d27:f0) address offset: 14ch attribute: ro default value: see register description size: 32 bits bit description 31:24 port number?ro. hardwired to 05h indicating that intel high definition audio controller is assigned as port #5. 23:16 component id?ro. this field returns the value of the esd.cid field of the chip configuration section. esd.cid is programmed by bios. 15:8 number of link entries?ro. the intel high definition audio only connects to one device, the egress port. therefore this field reports a value of 1h. 7:4 reserved. 3:0 element type (eltyp)?ro. the intel high definition audio controller is an integrated root complex device. therefore, the field reports a value of 0h. bit description 31:24 target port number?ro. the intel high definition audio controller targets the rcrb egress port, which is port #0. 23:16 target component id?ro. this field returns the value of the esd.cid field of the chip configuration section. esd.cid is programmed by bios. 15:2 reserved. 1 link type?ro. hardwired to 0 indicating type 0. 0 link valid?ro. hardwired to 1. bit description 31:14 link 1 lower address?ro. hardwired to match the rcba register value in the pci-lpc bridge (d31:f0:f0h). 13:0 reserved. bit description 31:0 link 1 upper address?ro. hardwired to match the rcba register value in the pci-lpc bridge (d31:f0:f0h).
512 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.2 intel ? high definition audio memory mapped configuration registers (high definition audio? d27:f0) the base memory location for these memory mapped configuration registers is specified in the azbar register (d27:f0:offset 10h and d27:f0:offset 14h). the individual registers are then accessible at azbar + offset as indicated in the following table. these memory mapped registers must be accessed in byte, word, or dword quantities. table 14-2. intel ? high definition audio pci register address map (high definition audio?d27:f0) (sheet 1 of 4) azbar + offset mnemonic register name default access 00-01h gcap global capabilities 4401h ro 02h vmin minor version 00h ro 03h vmaj major version 01h ro 04-05h outpay output payload capability 003ch ro 06-07h inpay input payload capability 001dh ro 08-0bh gctl global control 00000000h r/w 0c-0dh wakeen wake enable 0000h r/w 0e-0fh statests state change status 0000h r/wc 10-11h gsts global status 0000h r/wc 20-23h intctl interrupt control 00000000h r/w 24-27h intsts interrupt status 00000000h ro 30-33h walclk wall clock counter 00000000h ro 34-37h sync stream synchronization 00000000h r/w 40-43h corblbase corb lower base address 00000000h r/w, ro 44-47h corbubase corb upper base address 00000000h r/w 4a-4bh corbrp corb read pointer 0000h r/w 4ch corbctl corb control 00h r/w 4dh corbst corb status 00h r/wc 4eh corbsize corb size 42h ro 50-53h rirblbase rirb lower base address 00000000h r/w, ro 54-57h rirbubase rirb upper base address 00000000h r/w 58-59h rirbwp rirb write pointer 0000h r/w, ro 5a-5bh rintcnt response interrupt count 0000h r/w 5ch rirbctl rirb control 00h r/w 5dh rirbsts rirb status 00h r/wc 5eh rirbsize rirb size 42h ro 60-63h ic immediate command 00000000h r/w 64-67h ir immediate response 00000000h ro 68-69h irs immediate command status 0000h r/w, r/wc 70-73h dplbase dma position lower base address 00000000h r/w, ro 74-77h dpubase dma position upper base address 00000000h r/w
intel ? 631xesb/632xesb i/o controller hub datasheet 513 intel ? high definition audio controller registers (d27:f0) 80-82h isd0ctl input stream descriptor 0 (isd0) control 040000h r/w, ro 83h isd0sts isd0 status 00h r/wc, ro 84-87h isd0lpib isd0 link position in buffer 00000000h ro 88-8bh isd0cbl isd0 cyclic buffer length 00000000h r/w 8c-8dh isd0lvi isd0 last valid index 0000h r/w 8e-8f isd0fifow isd0 fifo watermark 0004h r/w 90-91h isd0fifos isd0 fifo size 005fh ro 92-93h isd0fmt isd0 format 0000h r/w 98-9bh isd0bdpl isd0 buffer descriptor list pointer-lower base address 00000000h r/w, ro 9c-9fh isd0bdpu isd0 buffer description list pointer-upper base address 00000000h r/w a0-a2h isd1ctl input stream descriptor 1(isd01) control 040000h r/w, ro a3h isd1sts isd1 status 00h r/wc, ro a4-a7h isd1lpib isd1 link position in buffer 00000000h ro a8-abh isd1cbl isd1 cyclic buffer length 00000000h r/w ac-adh isd1lvi isd1 last valid index 0000h r/w ae-afh isd1fifow isd1 fifo watermark 0004h r/w b0-b1h isd1fifos isd1 fifo size 005fh ro b2-b3h isd1fmt isd1 format 0000h r/w b8-bbh isd1bdpl isd1 buffer descriptor list pointer-lower base address 00000000h r/w, ro bc-bfh isd1bdpu isd1 buffer description list pointer-upper base address 00000000h r/w c0-c2h isd2ctl input stream descriptor 2 (isd2) control 040000h r/w, ro c3h isd2sts isd2 status 00h r/wc, ro c4-c7h isd2lpib isd2 link position in buffer 00000000h ro c8-cbh isd2cbl isd2 cyclic buffer length 00000000h r/w cc-cdh isd2lvi isd2 last valid index 0000h r/w ce-cfh isd1fifow isd1 fifo watermark 0004h r/w d0-d1h isd2fifos isd2 fifo size 005fh ro d2-d3h isd2fmt isd2 format 0000h r/w d8-dbh isd2bdpl isd2 buffer descriptor list pointer-lower base address 00000000h r/w, ro dc-dfh isd2bdpu isd2 buffer description list pointer-upper base address 00000000h r/w e0-e2h isd3ctl input stream descriptor 3 (isd3) control 040000h r/w, ro e3h isd3sts isd3 status 00h r/wc, ro e4-e7h isd3lpib isd3 link position in buffer 00000000h ro e8-ebh isd3cbl isd3 cyclic buffer length 00000000h r/w ec-edh isd3lvi isd3 last valid index 0000h r/w ee-efh isd3fifow isd3 fifo watermark 0004h r/w f0-f1h isd3fifos isd3 fifo size 005fh ro table 14-2. intel ? high definition audio pci register address map (high definition audio?d27:f0) (sheet 2 of 4) azbar + offset mnemonic register name default access
514 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) f2-f3h isd3fmt isd3 format 0000h r/w f8-fbh isd3bdpl isd3 buffer descriptor list pointer-lower base address 00000000h r/w, ro fc-ffh isd3bdpu isd3 buffer description list pointer-upper base address 00000000h r/w 100-102h osd0ctl output stream descriptor 0 (osd0) control 040000h r/w, ro 103h osd0sts osd0 status 00h r/wc, ro 104-107h osd0lpib osd0 link position in buffer 00000000h ro 108-10bh osd0cbl osd0 cyclic buffer length 00000000h r/w 10c-10dh osd0lvi osd0 last valid index 0000h r/w 10e-10fh osd0fifow osd0 fifo watermark 0004h r/w 110-111h osd0fifos osd0 fifo size 00bfh r/w 112-113h osd0fmt osd0 format 0000h r/w 118-11bh osd0bdpl osd0 buffer descriptor list pointer-lower base address 00000000h r/w, ro 11c-11fh osd0bdpu osd0 buffer description list pointer-upper base address 00000000h r/w 120-122h osd1ctl output stream descriptor 1 (osd1) control 040000h r/w, ro 123h osd1sts osd1 status 00h r/wc, ro 124-127h osd1lpib osd1 link position in buffer 00000000h ro 128-12bh osd1cbl osd1 cyclic buffer length 00000000h r/w 12c-12dh osd1lvi osd1 last valid index 0000h r/w 12e-12fh osd1fifow osd1 fifo watermark 0004h r/w 130-131h osd1fifos osd1 fifo size 00bfh r/w 132-133h osd1fmt osd1 format 0000h r/w 138-13bh osd1bdpl osd1 buffer descriptor list pointer-lower base address 00000000h r/w, ro 13c-13fh osd1bdpu osd1 buffer description list pointer-upper base address 00000000h r/w 140-142h osd2ctl output stream descriptor 2 (osd2) control 040000h r/w, ro 143h osd2sts osd2 status 00h r/wc, ro 144-147h osd2lpib osd2 link position in buffer 00000000h ro 148-14bh osd2cbl osd2 cyclic buffer length 00000000h r/w 14c-14dh osd2lvi osd2 last valid index 0000h r/w 14e-14fh osd2fifow osd2 fifo watermark 0004h r/w 150-151h osd2fifos osd2 fifo size 00bfh r/w 152-153h osd2fmt osd2 format 0000h r/w 158-15bh osd2bdpl osd2 buffer descriptor list pointer-lower base address 00000000h r/w, ro 15c-15fh osd2bdpu osd2 buffer description list pointer-upper base address 00000000h r/w 160-162h osd3ctl output stream descriptor 3 (osd3) control 040000h r/w, ro 163h osd3sts osd3 status 00h r/wc, ro 164-167h osd3lpib osd3 link position in buffer 00000000h ro table 14-2. intel ? high definition audio pci register address map (high definition audio?d27:f0) (sheet 3 of 4) azbar + offset mnemonic register name default access
intel ? 631xesb/632xesb i/o controller hub datasheet 515 intel ? high definition audio controller registers (d27:f0) 14.2.1 gcap?global capabilities register (high definition audio controller?d27:f0) memory address: azbar + 00h attribute: ro default value: 4401h size: 16 bits 14.2.2 vmin?minor version register (high definition audio controller?d27:f0) memory address: azbar + 02h attribute: ro default value: 00h size: 8 bits 14.2.3 vmaj?major version register (high definition audio controller?d27:f0) memory address: azbar + 03h attribute: ro default value: 01h size: 8 bits 168-16bh osd3cbl osd3 cyclic buffer length 00000000h r/w 16c-16dh osd3lvi osd3 last valid index 0000h r/w 16e-16fh osd3fifow osd3 fifo watermark 0004h r/w 170-171h osd3fifos osd3 fifo size 00bfh r/w 172-173h osd3fmt osd3 format 0000h r/w 178-17bh osd3bdpl osd3 buffer descriptor list pointer-lower base address 00000000h r/w, ro 17c-17fh osd3bdpu osd3 buffer description list pointer-upper base address 00000000h r/w table 14-2. intel ? high definition audio pci register address map (high definition audio?d27:f0) (sheet 4 of 4) azbar + offset mnemonic register name default access bit description 15:12 number of output stream supported? ro. hardwired to 0100b indicating that the intel high definition audio controller supports 4 output streams. 11:8 number of input stream supported? ro. hardwired to 0100b indicating that the intel high definition audio controller supports 4 input streams. 7:3 number of bidirectional stream supported? ro. hardwired to 0 indicating that the intel high definition audio controller supports 0 bidirectional stream. 2 reserved. 1 number of serial data out signals? ro. hardwired to 0 indicating that the intel high definition audio controller supports 1 serial data output signal. 0 64-bit address supported? ro. hardwired to 1b indicating that the intel high definition audio controller supports 64-bit addressing for bdl addresses, data buffer addressees, and command buffer addresses. bit description 7:0 minor version? ro. hardwired to 0 indicating that the minor revision number 00h of the intel high definition audio specification is supported bit description 7:0 major version? ro. hardwired to 01h indicating that major revision number 1 of the intel high definition audio specification is supported.
516 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.2.4 outpay?output payload capability register (high definition audio controller?d27:f0) memory address: azbar + 04h attribute: ro default value: 003ch size: 16 bits 14.2.5 inpay?input payload capability register (high definition audio controller?d27:f0) memory address: azbar + 06h attribute: ro default value: 001dh size: 16 bits 14.2.6 gctl?global control register (high definition audio controller?d27:f0) memory address: azbar + 08h attribute: r/w default value: 00000000h size: 32 bits bit description 15:7 reserved. 6:0 output payload capability? ro. hardwired to 3ch indicating 60 word payload. this field indicates the total output payload availa ble on the link. this does not include bandwidth used for command and control. this measurement is in 16-bit word quantities per 48mhz frame. the default link clock of 24.000mhz (the data is double pumped) provides 1000 bits per frame, or 62.5 words in total. 40 bits are used for command an d control, leaving 60 words available for data payload. 00h = 0 word 01h = 1 word payload. ..... ffh = 256 word payload. bit description 15:7 reserved. 6:0 input payload capability? ro. hardwired to 1dh indicating 29 word payload. this field indicates the total output payload availa ble on the link. this does not include bandwidth used for response. this measurement is in 16-bit word quantities per 48mhz frame. the default link clock of 24.000mhz provides 500 bits per frame, or 31.25 words in total. 36 bits are used for response, leaving 29 words available for data payload. 00h = 0 word 01h = 1 word payload. ..... ffh = 256 word payload. bit description 31:9 reserved. 8 accept unsolicited response enable ? r/w. 0 = unsolicited responses from the codecs are not accepted. 1 = unsolicited response from the codecs are accepted by the controller and placed into the response input ring buffer.
intel ? 631xesb/632xesb i/o controller hub datasheet 517 intel ? high definition audio controller registers (d27:f0) 14.2.7 wakeen?wake enable register (high definition audio controller?d27:f0) memory address: azbar + 0ch attribute: r/w default value: 0000h size: 16 bits 7:2 reserved. 1 flush control ? r/w. writing a 1 to this bit initiates a flush. when the flush completion is received by the controller, hardware sets the flush status bit and clears this flush control bit. before a flush cycle is initiated, the dma position buffer must be programmed with a valid memory address by software, but the dma position buffer bit 0 needs not be set to enable the position reporting mechanism. also, all streams must be stopped (the as sociated run bit must be 0). when the flush is initiated, the controller will flus h the pipelines to memory to guarantee that the hardware is ready to transition to a d3 state. setting this bit is not a critical step in the power state transition if the content of the fifios is not critical. 0 controller reset # ? r/w. 0 = writing a 0 to this bit causes the intel high definition audio controller to be reset. all state machines, fifos and non-resume well memory mapped configuration registers (not pci configuration registers) in the controller will be reset. the intel high definition audio link reset# signal will be asserted, and all other link signals will be driven to their default values. after the hardware has completed sequencing into the reset state, it will report a 0 in this bit. software must read a 0 from this bit to verify the controller is in reset. 1 = writing a 1 to this bit causes the controller to exit its reset state and deassert the intel high definition audio link reset# signal. software is responsible for setting/clearing this bit such that the minimum intel high definition audio link reset# signal assertion pulse width specification is met. when the controller hardware is ready to begin op eration, it will report a 1 in this bit. software must read a 1 from this bit before accessing any controller registers. this bit defaults to a 0 after hardware reset, therefore, software needs to write a 1 to this bit to begin operation. note: the corb/rirb run bits and all stream run bits must be verified cleared to 0 before writing a 0 to this bit in order to assure a clean re-start. when setting or clearing this bit, software must ensure that minimum link timing requirements (minimum reset# assertion time, and so forth) are met. when this bit is 0 indicating that the controller is in reset, all intel high definition audio memory mapped registers are ignored as if the device is not present. the only exception is this bit itself, which will cause the controller to leave the reset state when a 1 is written to it. bit description bit description 15:3 reserved. 2:0 sdin wake enable flags ? r/w. these bits control which sdi signal(s) may generate a wake event. a 1b in the bit mask indicates that the associated sdin signal is enabled to generate a wake. bit 0 is used for sdi[0] bit 1 is used for sdi[1] bit 2 is used for sdi[2] note: these bits are in the resume well and only cleared on a power on reset. software must not make assumptions about the reset state of these bits and must set them appropriately.
518 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.2.8 statests?state change status register (high definition audio controller?d27:f0) memory address: azbar + 0eh attribute: r/wc default value: 0000h size: 16 bits 14.2.9 gsts?global status register (high definition audio controller?d27:f0) memory address: azbar + 10h attribute: r/wc default value: 0000h size: 16 bits 14.2.10 intctl?interrupt control register (high definition audio controller?d27:f0) memory address: azbar + 20h attribute: r/w default value: 00000000h size: 32 bits bit description 15:3 reserved. 2:0 sdin state change status flags ? r/wc. flag bits that indicate which sdi signal(s) received a state change event. the bits are cleared by writing 1?s to them. bit 0 = sdi[0] bit 1 = sdi[1] bit 2 = sdi[2] note: these bits are in the resume well and only cleared on a power on reset. software must not make assumptions about the reset state of these bits and must set them appropriately. bit description 15:2 reserved. 1 flush status ? r/wc. this bit is set to 1 by hardware to indicate that the flush cycle initiated when the flush control bit (azbar + 08h, bit 1) was set has completed. software must write a 1 to clear this bit before the next time the flush control bit is set to clear the bit. 0 reserved. bit description 31 global interrupt enable (gie) ?r/w. global bit to enable device interrupt generation. when set to 1, the intel high definition audio function is enabled to generate an interrupt. this control is in addition to any bits in the bus specific address space, such as the interrupt enable bit in the pci configuration space. note: this bit is not affected by the d3 hot to d0 transition.
intel ? 631xesb/632xesb i/o controller hub datasheet 519 intel ? high definition audio controller registers (d27:f0) 14.2.11 intsts?interrupt status register (high definition audio controller?d27:f0) memory address: azbar + 24h attribute: ro default value: 00000000h size: 32 bits 30 controller interrupt enable (cie) ? r/w. enables the general interrupt for controller functions. when set to 1, the controller generates an interrupt when the corresponding status bit gets set due to a response interrupt, a response buffer overrun, and state change events. note: this bit is not affected by the d3 hot to d0 transition. 29:8 reserved 7:0 stream interrupt enable (sie) ?r/w. when set to 1, the individual streams are enabled to generate an interrupt when the corresponding status bits get set. a stream interrupt will be caused as a result of a buffer with ioc = 1in the bdl entry being completed, or as a result of a fifo error (underrun or overrun) occurring. control over the generation of each of these sources is in the associated stream descriptor. the streams are numbered and the sie bits assigned sequentially, based on their order in the register set. bit 0: input stream 1 bit 1: input stream 2 bit 2: input stream 3 bit 3: input stream 4 bit 4: output stream 1 bit 5: output stream 2 bit 6: output stream 3 bit 7: output stream 4 bit description bit description 31 global interrupt status (gis)?ro. this bit is an or of all the interrupt status bits in this register. note: this bit is not affected by the d3 hot to d0 transition. 30 controller interrupt status (cis) ? ro. status of general controller interrupt. 1 = indicates that an interrupt condition occurred due to a response interrupt, a response buffer overrun interrupt, or a sdin state change event. the exact cause can be determined by interrogating other registers. this bit is an or of all of the stated interrupt status bits for this register. notes: 1. this bit is set regardless of the state of the corresponding interrupt enable bit, but a hardware interrupt will not be generated unless the corresponding enable bit is set. 2. this bit is not affected by the d3 hot to d0 transition. 29:8 reserved 7:0 stream interrupt status (sis) ?ro. 1 = indicates that an interrupt condition occurred on the corresponding stream. this bit is an or of all of the stream?s interrupt status bits. note: these bits are set regardless of the state of the corresponding interrupt enable bits. the streams are numbered and the sie bits assigned sequentially, based on their order in the register set. bit 0: input stream 1 bit 1: input stream 2 bit 2: input stream 3 bit 3: input stream 4 bit 4: output stream 1 bit 5: output stream 2 bit 6: output stream 3 bit 7: output stream 4
520 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.2.12 walclk?wall clock counter register (high definition audio controller?d27:f0) memory address: azbar + 30h attribute: ro default value: 00000000h size: 32 bits 14.2.13 ssync?stream sync hronization register (high definition audio controller?d27:f0) memory address: azbar + 34h attribute: r/w default value: 00000000h size: 32 bits 14.2.14 corblbase?corb lower base address register (high definition audio controller?d27:f0) memory address: azbar + 40h attribute: r/w, ro default value: 00000000h size: 32 bits bit description 31:0 wall clock counter? ro. 32 bit counter that is incremented on each link bclk period and rolls over from ffff ffffh to 0000 0000h. this counter will roll over to 0 with a period of approximately 179 seconds. this counter is enabled while the bclk bit is set to 1. software uses this counter to synchronize between multiple controllers. will be reset on controller reset. bit description 31:8 reserved 7:0 stream synchronization (ssync) ? r/w. when set to 1, these bits block data from being sent on or received from the link. each bit controls the associated stream descriptor (that is, bit 0 corresponds to the first stream descriptor, and so forth). to synchronously start a set of dma engines, these bits are first set to 1. the run bits for the associated stream descriptors are then set to 1 to start the dma engines. when all streams are ready (fifordy =1), the associated ssync bits can all be set to 0 at the same time, and transmission or reception of bits to or from the link will begin together at the start of the next full link frame. to synchronously stop the streams, fist these bits are set, and then the individual run bits in the stream descriptor are cleared by software. if synchronization is not desired, these bits may be left as 0, and the stream will simply begin running normally when the stream?s run bit is set. the streams are numbered and the sie bits assigned sequentially, based on their order in the register set. bit 0: input stream 1 bit 1: input stream 2 bit 2: input stream 3 bit 3: input stream 4 bit 4: output stream 1 bit 5: output stream 2 bit 6: output stream 3 bit 7: output stream 4 bit description 31:7 corb lower base address ? r/w. lower address of the command output ring buffer, allowing the corb base address to be assigned on any 128b boundary. this register field must not be written when the dma engine is running or the dma transfer may be corrupted. 6:0 corb lower base unimplemented bits? ro. hardwired to 0. this required the corb to be allocated with 128b granularity to allow for cache line fetch optimizations.
intel ? 631xesb/632xesb i/o controller hub datasheet 521 intel ? high definition audio controller registers (d27:f0) 14.2.15 corbubase?corb upper base address register (high definition audio controller?d27:f0) memory address: azbar + 44h attribute: r/w default value: 00000000h size: 32 bits 14.2.16 corbrp?corb read pointer register (high definition audio controller?d27:f0) memory address: azbar + 4ah attribute: r/w default value: 0000h size: 16 bits 14.2.17 corbctl?corb control register (high definition audio controller?d27:f0) memory address: azbar + 4ch attribute: r/w default value: 00h size: 8 bits bit description 31:0 corb upper base address ? r/w. upper 32 bits of the address of the command output ring buffer. this register field must not be written when the dma engine is running or the dma transfer may be corrupted. bit description 15 corb read pointer reset ?r/w. software writes a 1 to this bit to reset the corb read pointer to 0. the corb dma engine must be stopped prior to resetting the read pointer or else dma transfer may be corrupted. this bit is always read as 0. 14:8 reserved. 7:0 corb read pointer ? r/w. software writes the last valid corb entry offset into this field in dword granularity. the dma engine fetches commands from the corb until the read pointer matches the write pointer. supports 256 corb entries (256x4b = 1kb). this register field may be written when the dma engine is running. bit description 7:2 reserved. 1 enable corb dma engine ? r/w. 0 = dma stop 1 = dma run after software writes a 0 to this bit, the hardware may not stop immediately. the hardware will physically update the bit to 0 when the dma engine is truly stopped. software must read a 0 from this bit to verify that the dma engine is truly stopped. 0 corb memory error interrupt enable ? r/w. if this bit is set the controller will generate an interrupt if the cmei status bit (azbar + 4dh: bit 0) is set.
522 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.2.18 corbst?corb status register (high definition audio controller?d27:f0) memory address: azbar + 4dh attribute: r/wc default value: 00h size: 8 bits 14.2.19 corbsize?corb size register (high definition audio controller?d27:f0) memory address: azbar + 4eh attribute: ro default value: 42h size: 8 bits 14.2.20 rirblbase?rirb lower base address register (high definition audio controller?d27:f0) memory address: azbar + 50h attribute: r/w, ro default value: 00000000h size: 32 bits 14.2.21 rirbubase?rirb upper base address register (high definition audio controller?d27:f0) memory address: azbar + 54h attribute: r/w default value: 00000000h size: 32 bits bit description 7:1 reserved. 0 corb memory error indication (cmei) ? r/wc. if this bit is set, the controller has detected an error in the path way between the controller and memory. this may be an ecc bit error or any other type of detectable data error which renders the command data fetched invalid. software can clear this bit by writing a 1 to it. however, this type of error leaves the audio subsystem in an unviable state and typically required a controller reset by writing a 0 to the controller reset # bit (azbar + 08h: bit 0). bit description 7:4 corb size capability?ro. hardwired to 0100b indicating that corb size of 256 corb entries (1024b) is supported 3:2 reserved. 1:0 corb size? ro. hardwired to 10b which sets the corb size to 256 entries (1024b) bit description 31:7 rirb lower base address ? r/w. lower address of the response input ring buffer, allowing the rirb base address to be assigned on any 128b boundary. this register field must not be written when the dma engine is running or the dma transfer may be corrupted. 6:0 rirb lower base unimplemented bits? ro. hardwired to 0. this required the rirb to be allocated with 128b granularity to allow for cache line fetch optimizations. bit description 31:0 rirb upper base address ? r/w. upper 32 bits of the address of the response input ring buffer. this register field must not be written when the dma engine is running or the dma transfer may be corrupted.
intel ? 631xesb/632xesb i/o controller hub datasheet 523 intel ? high definition audio controller registers (d27:f0) 14.2.22 rirbwp?rirb write pointer register (high definition audio controller?d27:f0) memory address: azbar + 58h attribute: r/w, ro default value: 0000h size: 16 bits 14.2.23 rintcnt?response interrupt count register (high definition audio controller?d27:f0) memory address: azbar + 5ah attribute: r/w default value: 0000h size: 16 bits bit description 15 rirb write pointer reset ?r/w. software writes a 1 to this bit to reset the rirb write pointer to 0. the rirb dma engine must be stopped prior to resetting the write pointer or else dma transfer may be corrupted. this bit is always read as 0. 14:8 reserved. 7:0 rirb write pointer (rirbwp) ? ro. indicates the last valid rirb entry written by the dma controller. software reads this field to determine how many responses it can read from the rirb. the value read indicates the rirb write pointer offset in 2 dword rirb entry units (since each rirb entry is 2 dwords long). supports up to 256 rirb entries (256 x 8 b = 2 kb). this register field may be written when the dma engine is running. bit description 15:8 reserved. 7:0 n response interrupt count ? r/w. 0000 0001b = 1 response sent to rirb ........... 1111 1111b = 255 responses sent to rirb 0000 0000b = 256 responses sent to rirb the dma engine should be stopped when changing this field or else an interrupt may be lost. note that each response occupies 2 dwords in the rirb. this is compared to the total number of responses that have been returned, as opposed to the number of frames in which there were responses. if more than one codecs responds in one frame, then the count is increased by the number of responses received in the frame.
524 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.2.24 rirbctl?rirb control register (high definition audio controller?d27:f0) memory address: azbar + 5ch attribute: r/w default value: 00h size: 8 bits 14.2.25 rirbsts?rirb status register (high definition audio controller?d27:f0) memory address: azbar + 5dh attribute: r/wc default value: 00h size: 8 bits 14.2.26 rirbsize?rirb size register (high definition audio controller?d27:f0) memory address: azbar + 5eh attribute: ro default value: 42h size: 8 bits bit description 7:3 reserved. 2 response overrun interrupt control ?r/w. if this bit is set, the hardware will generate an interrupt when the response overrun interrupt status bit (azbar + 5dh: bit 2) is set. 1 enable rirb dma engine ? r/w. 0 = dma stop 1 = dma run after software writes a 0 to this bit, the hardware may not stop immediately. the hardware will physically update the bit to 0 when the dma engine is truly stopped. software must read a 0 from this bit to verify that the dma engine is truly stopped. 0 response interrupt control ? r/w. 0 = disable interrupt 1 = generate an interrupt after n number of responses are sent to the rirb buffer or when an empty response slot is encountered on all sdi[x] inputs (whichever occurs first). the n counter is reset when the interrupt is generated. bit description 7:3 reserved. 2 response overrun interrupt status ? r/wc. software sets this bit to 1 when the rirb dma engine is not able to write the incoming responses to memory before additional incoming responses overrun the internal fifo. when the overrun occurs, the hardware will drop the responses which overrun the buffer. an interrupt may be generated if the response overrun interrupt control bit is set. note that this status bit is set even if an interrupt is not enabled for this event. software clears this bit by writing a 1 to it. 1 reserved. 0 response interrupt? r/wc. hardware sets this bit to 1 when an interrupt has been generated after n number of responses are sent to the rirb buffer or when an empty response slot is encountered on all sdi[x] inputs (whichever occurs first). note that this status bit is set even if an interrupt is not enabled for this event. software clears this bit by writing a 1 to it. bit description 7:4 rirb size capability?ro. hardwired to 0100b indicating that rirb size of 256 rirb entries (2048b) is supported 3:2 reserved. 1:0 rirb size? ro. hardwired to 10b which sets the corb size to 256 entries (2048b)
intel ? 631xesb/632xesb i/o controller hub datasheet 525 intel ? high definition audio controller registers (d27:f0) 14.2.27 ic?immediate command register (high definition audio controller?d27:f0) memory address: azbar + 60h attribute: r/w default value: 00000000h size: 32 bits 14.2.28 ir?immediate response register (high definition audio controller?d27:f0) memory address: azbar + 64h attribute: ro default value: 00000000h size: 32 bits 14.2.29 irs?immediate command status register (high definition audio controller?d27:f0) memory address: azbar + 68h attribute: r/w, r/wc default value: 0000h size: 16 bits bit description 31:0 immediate command write?r/w . the command to be sent to the codec via the immediate command mechanism is written to this register. th e command stored in this register is sent out over the link during the next available frame after a 1 is written to the icb bit (azbar + 68h: bit 0) bit description 31:0 immediate response read (irr)?ro. this register contains the response received from a codec resulting from a command sent via the immediate command mechanism. if multiple codecs responded in the same time, there is no guarantee as to which response will be latched. therefore, broadcast-type commands must not be issued via the immediate command mechanism. bit description 15:2 reserved. 1 immediate result valid (irv) ?r/wc. this bit is set to 1 by hardware when a new response is latched into the immediate response register (azbar + 64). this is a status flag indicating that software may read the response from the immediate response register. software must clear this bit by writing a 1 to it before issuing a new command so that the software may determine when a new response has arrived. 0 immediate command busy (icb) ?r/w. when this bit is read as 0, it indicates that a new command may be issued using the immediate command mechanism. when this bit transitions from a 0 to a 1 (via software writing a 1), the controller issues the command currently stored in the immediate command register to the codec over the link. when the corresponding response is latched into the immediate response register, the controller hardware sets the irv flag and clears the icb bit back to 0. note: an immediate command must not be issued while the corb/rirb mechanism is operating, otherwise the responses conflict. this must be enforced by software.
526 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.2.30 dplbase?dma position lower base address register (high definition audio controller?d27:f0) memory address: azbar + 70h attribute: r/w, ro default value: 00000000h size: 32 bits 14.2.31 dpubase?dma position upper base address register (high definition audio controller?d27:f0) memory address: azbar + 74h attribute: r/w default value: 00000000h size: 32 bits bit description 31:7 dma position lower base address ?r/w. lower 32 bits of the dma position buffer base address. this register field must not be written when any dma engine is running or the dma transfer may be corrupted. this same address is used by the flush control and must be programmed with a valid value before the flush control bit (azbar+08h:bit 1) is set. 6:1 dma position lower base unimplemented bits?ro. hardwired to 0 to force the 128 byte buffer alignment for cache line write optimizations. 0 dma position buffer enable ?r/w. when this bit is set to 1, the controller will write the dma positions of each of the dma engines to the buffer in the main memory periodically (typica lly once per frame). software can use this value to know what data in memory is valid data. bit description 31:0 dma position upper base address ?r/w. upper 32 bits of the dma position buffer base address. this register field must not be written when any dma engine is running or the dma transfer may be corrupted.
intel ? 631xesb/632xesb i/o controller hub datasheet 527 intel ? high definition audio controller registers (d27:f0) 14.2.32 sdctl?stream descriptor control register (high definition audio controller?d27:f0) memory address: input stream[0]: azbar + 80hattribute: r/w, ro input stream[1]: azbar + a0h input stream[2]: azbar + c0h input stream[3]: azbar + e0h output stream[0]: azbar + 100h output stream[1]: azbar + 120h output stream[2]: azbar + 140h output stream[3]: azbar + 160h default value: 040000h size: 24 bits bit description 23:20 stream number ?r/w. this value reflect the tag associated with the data being transferred on the link. when data controlled by this descriptor is sent out over the link, it will have its stream number encoded on the sync signal. when an input stream is detected on any of the sdi signals that match this value, the data samples are loaded into fifo associated with this descriptor. note that while a single sdi input may contain data from more than one stream number, two different sdi inputs may not be configured with the same stream number. 0000 = reserved 0001 = stream 1 ........ 1110 = stream 14 1111 = stream 15 19 bidirectional direction control?ro. this bit is only meaningful for bidirectional streams; therefore, this bit is hardwired to 0. 18 traffic priority?ro. hardwired to 1 indicating that all streams will use vc1 if it is enabled through the pci express registers. 17:16 stripe control?ro. this bit is only meaningful fo r input streams; therefore, this bit is hardwired to 0. 15:5 reserved 4 descriptor error interrupt enable ?r/w. 0 = disable 1 = an interrupt is generated when the descriptor error status bit is set. 3 fifo error interrupt enable ?r/w. this bit controls whether the occurrence of a fifo error (overrun for input or underrun for output) will cause an interrupt or not. if this bit is not se t, bit 3in the status register will be set, but the interrupt will not occur. either way, the samples will be dropped.
528 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.2.33 sdsts?stream descri ptor status register (high definition audio controller?d27:f0) memory address: input stream[0]: azbar + 83h attribute:r/wc, ro input stream[1]: azbar + a3h input stream[2]: azbar + c3h input stream[3]: azbar + e3h output stream[0]: azbar + 103h output stream[1]: azbar + 123h output stream[2]: azbar + 143h output stream[3]: azbar + 163h default value: 00h size: 8 bits 2 interrupt on completion enable ?r/w. this bit controls whether or not an interrupt occurs when a buffer completes with the ioc bit set in its descriptor. if this bit is not set, bit 2 in the st atus register will be set, but the interrupt will not occur. 1 stream run (run) ?r/w. 0 = when cleared to 0, the dma engine associated with this input stream will be disabled. the hardware will report a 0 in this bit when the dma engine is actually stopped. software must read a 0 from this bit before modifying related control registers or restarting the dma engine. 1 = when set to 1, the dma engine associated with this input stream will be enabled to transfer data from the fifo to the main memory. the ssync bit must also be cleared in order for the dma engine to run. for output streams, the cadence generator is reset whenever the run bit is set. 0 stream reset (srst) ?r/w. 0 = writing a 0 causes the corresponding stream to exit reset. when the stream hardware is ready to begin operation, it will report a 0 in this bit. so ftware must read a 0 from this bit before accessing any of the stream registers. 1 = writing a 1 causes the corresponding stream to be reset. the stream descriptor registers (except the srst bit itself) and fifo?s for the corresponding stream are reset. after the stream hardware has completed sequencing into the reset stat e, it will report a 1 in this bit. software must read a 1 from this bit to verify that the stream is in reset. the run bit must be cleared before srst is asserted. bit description bit description 7:6 reserved. 5 fifo ready (fifordy)?ro. for output streams, the controller hardware will set this bit to 1 while the output dma fifo contains enough data to maintain the stream on the link. this bit defaults to 0 on reset because the fifo is cleared on a reset. for input streams, the controller hardware will set this bit to 1 when a valid descriptor is loaded and the engine is ready for the run bit to be set. 4 descriptor error ?r/wc. when set, this bit indicates that a serious error occurred during the fetch of a descriptor. this could be a result of a master abort, a parity or ecc error on the bus, or any other error which renders the current buffer descriptor or buffer descriptor list useless. this error is treated as a fatal stream error, as the stream cannot continue running. the run bit will be cleared and the stream will stopped. software may attempt to restart the stream engine after addressing the cause of the error and writing a 1 to this bit to clear it.
intel ? 631xesb/632xesb i/o controller hub datasheet 529 intel ? high definition audio controller registers (d27:f0) 14.2.34 sdlpib?stream descriptor link position in buffer register (high definition audio controller?d27:f0) memory address: input stream[0]: azbar + 84h attribute:ro input stream[1]: azbar + a4h input stream[2]: azbar + c4h input stream[3]: azbar + e4h output stream[0]: azbar + 104h output stream[1]: azbar + 124h output stream[2]: azbar + 144h output stream[3]: azbar + 164h default value: 00000000h size: 32 bits 14.2.35 sdcbl?stream descriptor cyclic buffer length register (high definition audio controller?d27:f0) memory address: input stream[0]: azbar + 88h attribute:r/w input stream[1]: azbar + a8h input stream[2]: azbar + c8h input stream[3]: azbar + e8h output stream[0]: azbar + 108h output stream[1]: azbar + 128h output stream[2]: azbar + 148h output stream[3]: azbar + 168h default value: 00000000h size: 32 bits 3 fifo error ?r/wc. this bit is set when a fifo error occurs. this bit is set even if an interrupt is not enabled. the bit is cleared by writing a 1 to it. for an input stream, this indicates a fifo overrun occurring while the run bit is set. when this happens, the fifo pointers do not increment and th e incoming data is not written into the fifo, thereby being lost. for an output stream, this indicates a fifo underrun when there are still buffers to send. the hardware should not transmit anything on the link fo r the associated stream if there is not valid data to send. 2 buffer completion interrupt status ?r/wc. this bit is set to 1 by the hardware after the last sample of a buffer has been processed, and if the interrupt on completion bit is set in the command byte of the buffer descriptor. it remains active until software clears it by writing a 1 to it. 1:0 reserved. bit description bit description 31:0 link position in buffer?ro. indicates the number of bytes that have been received off the link. this register will count from 0 to the value in the cyclic buffer length register and then wrap to 0. bit description 31:0 cyclic buffer length ?r/w. indicates the number of bytes in the complete cyclic buffer. this register represents an integer number of samples. link position in buffer will be reset when it reaches this value. software may only write to this register after global reset, controller reset, or stream reset has occurred. this value should be only modified when the run bit is 0. once the run bit has been set to enable the engine, software must not write to this register until after the next reset is asserted, or transfer may be corrupted.
530 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.2.36 sdlvi?stream descriptor last valid index register (high definition audio controller?d27:f0) memory address: input stream[0]: azbar + 8ch attribute:r/w input stream[1]: azbar + ach input stream[2]: azbar + cch input stream[3]: azbar + ech output stream[0]: azbar + 10ch output stream[1]: azbar + 12ch output stream[2]: azbar + 14ch output stream[3]: azbar + 16ch default value: 0000h size: 16 bits 14.2.37 sdfifow?stream descript or fifo watermark register (high definition audio controller?d27:f0) memory address: input stream[0]: azbar + 8eh attribute:r/w input stream[1]: azbar + aeh input stream[2]: azbar + ceh input stream[3]: azbar + eeh output stream[0]: azbar + 10eh output stream[1]: azbar + 12eh output stream[2]: azbar + 14eh output stream[3]: azbar + 16eh default value: 0004h size: 16 bits bit description 15:8 reserved. 7:0 last valid index ?r/w. the value written to this register indicates the index for the last valid buffer descriptor in bdl. after the controller has processed this descriptor, it will wrap back to the first descriptor in the list and continue processing. this field must be at least 1, that is, there must be at least 2 valid entries in the buffer descriptor list before dma operations can begin. this value should only modified when the run bit is 0. bit description 15:3 reserved. 2:0 fifo watermark (fifow) ?r/w. indicates the minimum number of bytes accumulated/free in the fifo before the controller will start a fetch/eviction of data. 010 = 8b 011 = 16b 100 = 32b (default) others = unsupported note: when the bit field is programmed to an unsupported size, the hardware sets itself to the default value. software must read the bit field to test if the value is supported after setting the bit field.
intel ? 631xesb/632xesb i/o controller hub datasheet 531 intel ? high definition audio controller registers (d27:f0) 14.2.38 sdfifos?stream descriptor fifo size register (high definition audio controller?d27:f0) memory address: input stream[0]: azbar + 90hattribute: input: ro input stream[1]: azbar + b0h output: r/w input stream[2]: azbar + d0h input stream[3]: azbar + f0h output stream[0]: azbar + 110h output stream[1]: azbar + 130h output stream[2]: azbar + 150h output stream[3]: azbar + 170h default value: input stream: 0077h size: 16 bits output stream: 00bfh bit description 15:8 reserved. 7:0 fifo size ?ro (input stream), r/w (output stream). indicates the maximum number of bytes that could be fetched by the controller at one time. this is the maximum number of bytes that may have been dma?d into memory but not yet transmitted on the link, and is also the maximum possible value that the picb count will increase by at one time. the value in this field is differen t for input and output streams. it is also dependent on the bits per samples setting for the corresponding stream. following are the values read/written from/to this register for input and output streams, and for non-padded and padded bit formats: output stream r/w value : 0fh = 16b8, 16, 20, 24, or 32 bit output streams 1fh = 32b8, 16, 20, 24, or 32 bit output streams 3fh = 64b8, 16, 20, 24, or 32 bit output streams 7fh = 128b8, 16, 20, 24, or 32 bit output streams bfh = 192b8, 16, or 32 bit output streams ffh = 256b20, 24 bit output streams notes: 1. all other values not listed are not supported. 2. when the output stream is programmed to an unsupported size, the hardware sets itself to the default value (bfh). 3. software must read the bit field to test if the value is supported after setting the bit field. input stream ro value : 77h = 120b8, 16, 32 bit input streams 9fh = 160b20, 24 bit input streams note: the default value is different for input and output streams, and reflects the default state of the bits fields (in stream descriptor format registers) for the corresponding stream.
532 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0) 14.2.39 sdfmt?stream descriptor format register (high definition audio controller?d27:f0) memory address: input stream[0]: azbar + 92h attribute:r/w input stream[1]: azbar + b2h input stream[2]: azbar + d2h input stream[3]: azbar + f2h output stream[0]: azbar + 112h output stream[1]: azbar + 132h output stream[2]: azbar + 152h output stream[3]: azbar + 172h default value: 0000h size: 16 bits bit description 15 reserved. 14 sample base rate ?r/w 0 = 48 khz 1 = 44.1 khz 13:11 sample base rate multiple ?r/w 000 = 48 khz, 44.1 khz or less 001 = x2 (96 khz, 88.2 khz, 32 khz) 010 = x3 (144 khz) 011 = x4 (192 khz, 176.4 khz) others = reserved. 10:8 sample base rate devisor ?r/w. 000 = divide by 1(48 khz, 44.1 khz) 001 = divide by 2 (24 khz, 22.05 khz) 010 = divide by 3 (16 khz, 32 khz) 011 = divide by 4 (11.025 khz) 100 = divide by 5 (9.6 khz) 101 = divide by 6 (8 khz) 110 = divide by 7 111 = divide by 8 (6 khz) 7 reserved. 6:4 bits per sample (bits) ?r/w. 000 = 8 bits. the data will be packed in memory in 8-bit containers on 16-bit boundaries 001 = 16 bits. the data will be packed in memory in 16-bit containers on 16-bit boundaries 010 = 20 bits. the data will be packed in memory in 32-bit containers on 32-bit boundaries 011 = 24 bits. the data will be packed in memory in 32-bit containers on 32-bit boundaries 100 = 32 bits. the data will be packed in memory in 32-bit containers on 32-bit boundaries others = reserved. 3:0 number of channels (chan)?r/w. indicates number of channels in each frame of the stream. 0000 =1 0001 =2 ........ 1111 =16
intel ? 631xesb/632xesb i/o controller hub datasheet 533 intel ? high definition audio controller registers (d27:f0) 14.2.40 sdbdpl?stream descriptor buffer descriptor list pointer lower base address register (high definition audio controller?d27:f0) memory address: input stream[0]: azbar + 98h attribute:r/w,ro input stream[1]: azbar + b8h input stream[2]: azbar + d8h input stream[3]: azbar + f8h output stream[0]: azbar + 118h output stream[1]: azbar + 138h output stream[2]: azbar + 158h output stream[3]: azbar + 178h default value: 00000000h size: 32 bits 14.2.41 sdbdpu?stream descri ptor buffer descriptor list pointer upper base address register (high definition audio controller?d27:f0) memory address: input stream[0]: azbar + 9ch attribute:r/w input stream[1]: azbar + bch input stream[2]: azbar + dch input stream[3]: azbar + fch output stream[0]: azbar + 11ch output stream[1]: azbar + 13ch output stream[2]: azbar + 15ch output stream[3]: azbar + 17ch default value: 00000000h size: 32 bits bit description 31:7 buffer descriptor list pointer lower base address ?r/w. lower address of the buffer descriptor list. this value should only be modified when the run bit is 0, or dma transfer may be corrupted. 6:0 hardwired to 0 forcing alignment on 128-b boundaries. bit description 31:0 buffer descriptor list pointer upper base address ?r/w. upper 32-bit address of the buffer descriptor list. this value should only be modified when the run bit is 0, or dma transfer may be corrupted.
534 intel ? 631xesb/632xesb i/o controller hub datasheet intel ? high definition audio controller registers (d27:f0)
intel ? 631xesb/632xesb i/o controller hub datasheet 535 pci express* configuration registers 15 pci express* configuration registers 15.1 pci express* configuration registers (pci express ? d28:f0/f1/f2/f3) note: register address locations that are not shown in ta bl e 1 5 - 1 and should be treated as reserved. table 15-1. pci express* configuration registers address map (pci express ? d28:f0/f1/f2/f3) (sheet 1 of 3) offset mnemonic register name function 0 default function 1 default function 2 default function 3 default type 00?01h vid vendor identification 8086h 8086h 8086h 8086h ro 02?03h did device identification see register description see register description see register description see register description ro 04?05h pcicmd pci command 0000h 0000h 0000h 0000h r/w, ro 06?07h pcists pci status 0010h 0010h 0010h 0010h r/wc, ro 08h rid revision identification see register description. see register description. see register description. see register description. ro 09h pi programming interface 00h 00h 00h 00h ro 0ah scc sub class code 04h 04h 04h 04h ro 0bh bcc base class code 06h 06h 06h 06h ro 0ch cls cache line size 00h 00h 00h 00h r/w 0dh plt primary latency timer 00h 00h 00h 00h ro 0eh headtyp header type 81h 81h 81h 81h ro 18?1ah bnum bus number 000000h 000000h 000000h 000000h r/w 1c?1dh iobl i/o base and limit 0000h 0000h 0000h 0000h r/w, ro 1e?1fh ssts secondary status register 0000h 0000h 0000h 0000h r/wc 20?23h mbl memory base and limit 00000000h 00000000h 00000000h 00000000h r/w 24?27h pmbl prefetchable memory base and limit 00010001h 00010001h 00010001h 00010001h r/w, ro 28?2bh pmbu32 prefetchable memory base upper 32 bits 00000000h 00000000h 00000000h 00000000h r/w 2c?2fh pmlu32 prefetchable memory limit upper 32 bits 00000000h 00000000h 00000000h 00000000h r/w 34h capp capabilities list pointer 40h 40h 40h 40h ro 3c?3dh intr interrupt information see bit description see bit description see bit description see bit description r/w, ro 3e?3fh bctrl bridge control register 0000h 0000h 0000h 0000h r/w 40?41h clist capabilities list 8010 8010 8010 8010 ro 42?43h xcap pci express capabilities 0041 0041 0041 0041 r/wo, ro 44?47h dcap device capabilities 00000fe0h 00000fe0h 00000fe0h 00000fe0h ro
536 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 48?49h dctl device control 0000h 0000h 0000h 0000h r/w, ro 4a?4bh dsts device status 0010h 0010h 0010h 0010h r/wc, ro 4c?4fh lcap link capabilities see bit description see bit description see bit description see bit description r/w, ro 50?51h lctl link control 0000h 0000h 0000h 0000h r/w, r/w (special), ro 52?53h lsts link status see bit description see bit description see bit description see bit description ro 54?57h slcap slot capabilities register 00000060h 00000060h 00000060h 00000060h r/wo, ro 58?59h slctl slot control 0000h 0000h 0000h 0000h r/w, ro 5a?5bh slsts slot status 0000h 0000h 0000h 0000h r/wc, ro 5c?5dh rctl root control 0000h 0000h 0000h 0000h r/w 60?63h rsts root status 00000000h 00000000h 00000000h 00000000h r/wc, ro 80?81h mid message signaled interrupt identifiers 9005h 9005h 9005h 9005h ro 82?83h mc message signaled interrupt message control 0000h 0000h 0000h 0000h r/w, ro 84?87h ma message signaled interrupt message address 0000h 0000h 0000h 0000h r/w 88?89h md message signaled interrupt message data 0000h 0000h 0000h 0000h r/w 90?91h svcap subsystem vendor capability a00dh a00dh a00dh a00dh ro 94?97h svid subsystem vendor identification 00000000h 00000000h 00000000h 00000000h r/wo a0?a1h pmcap power management capability 0001h 0001h 0001h 0001h ro a2?a3h pmc pci power management capability c802h c802h c802h c802h ro a4?a7h pmcs pci power management control and status 00000000h 00000000h 00000000h 00000000h r/w, ro d8?dbh mpc miscellaneous port configuration 00110000h 00110000h 00110000h 00110000h r/w dc?dfh smscs smi/sci status register 00000000h 00000000h 00000000h 00000000h r/wc e0h rwc resume well control 00 00 00 00 r/w 100?103h vch virtual channel capability header 18010002h 18010002h 18010002h 18010002h ro 104?107h vcap1 virtual channel capability 1 see bit description see bit description see bit description see bit description ro 108?10bh vcap2 virtual channel capability 2 00000001h 00000001h 00000001h 00000001h ro 10c?10dh pvc port virtual channel control 0000h 0000h 0000h 0000h r/w, ro 10e?10fh pvs port virtual channel status 0000h 0000h 0000h 0000h ro table 15-1. pci express* configuration registers address map (pci express ? d28:f0/f1/f2/f3) (sheet 2 of 3) offset mnemonic register name function 0 default function 1 default function 2 default function 3 default type
intel ? 631xesb/632xesb i/o controller hub datasheet 537 pci express* configuration registers 15.1.1 vid ? vendor identification register (pci express ? d28:f0/f1/f2/f3) address offset: 00?01h attribute: ro default value: 8086h size: 16 bits 110?113h v0cap virtual channel 0 resource capability 00000001h 00000001h 00000001h 00000001h ro 114?117h v0ctl virtual channel 0 resource control 800000ffh 800000ffh 800000ffh 800000ffh r/w, ro 11a?11bh v0sts virtual channel 0 resource status 0000h 0000h 0000h 0000h ro 11c?11fh v1cap virtual channel 1 resource capability see bit description see bit description see bit description see bit description ro 120?123h v1ctl virtual channel 1 resource control 00000000h 00000000h 00000000h 00000000h r/w, ro 126?127h v1sts virtual channel 1 resource status 0000h 0000h 0000h 0000h ro 144?147h ues uncorrectable error status see bit description see bit description see bit description see bit description r/wc, ro 148?14bh uem uncorrectable error mask 00000000h 00000000h 00000000h 00000000h r/wo, ro 14c?14fh uev uncorrectable error severity 00060011h 00060011h 00060011h 00060011h ro 150?153h ces correctable error status 00000000h 00000000h 00000000h 00000000h r/wc 154?157h cem correctable error mask 00000000h 00000000h 00000000h 00000000h r/wo 158?15bh aecc advanced error capabilities and control 00000000h 00000000h 00000000h 00000000h ro 170?173h res root error status 00000000h 00000000h 00000000h 00000000h r/wc, ro 180?183h rctcl root complex topology capability list 00010005h 00010005h 00010005h 00010005h ro 184?187h esd element self description see bit description see bit description see bit description see bit description ro 18c?18fh uld upstream link description 00000001h 00000001h 00000001h 00000001h ro 190?197h ulba upstream link base address see bit description see bit description see bit description see bit description ro table 15-1. pci express* configuration registers address map (pci express ? d28:f0/f1/f2/f3) (sheet 3 of 3) offset mnemonic register name function 0 default function 1 default function 2 default function 3 default type bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel
538 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.2 did ? device identification register (pci express ? d28:f0/f1/f2/f3) address offset: 02?03h attribute: ro default value: see description size: 16 bits 15.1.3 pcicmd ? pci command register (pci express ? d28:f0/f1/f2/f3) address offset: 04?05h attribute: r/w, ro default value: 0000h size: 16 bits bit description 15:0 device id ? ro. bit 0 of this field reflects the state of fuses fdpcie. por#device id (fdpcie=0) device id (fdpcie=1) 1. 2690 2691 2. 2692 2693 3. 2694 2695 4. 2696 2697 bit description 15:11 reserved 10 interrupt disable ? r/w. this disables pin-based intx# interrupts on enabled hot-plug and power management events. this bit has no effect on msi operation. 0 = binternal intx# messages are generated if there is an interrupt for hot-plug or power management and msi is not enabled. 1 = internal intx# messages will not be generated. this bit does not affect interrupt forwarding from devices connected to the root port. assert_intx and deassert_intx messages will still be forwarded to the internal interrupt controllers if this bit is set. 9 fast back to back enable (fbe) ? reserved per the pci express base specification. 8 serr# enable (see) ? r/w. 0 = disable. 1 = enables the root port to generate an serr# message when psts.sse is set. 7 wait cycle control (wcc) ? reserved per the pci express base specification. 6 parity error response (per) ? r/w. 0 = disable. 1 = indicates that the device is capable of reporting parity errors as a master on the backbone. 5 vga palette snoop (vps) ? reserved per the pci express base specification. 4 postable memory write enable (pmwe) ? reserved per the pci express base specification. 3 special cycle enable (sce) ? reserved per the pci express base specification. 2 bus master enable (bme) ? r/w. 0 = disable. all cycles from the device are master aborted 1 = enable. allows the root port to forward cycles onto the backbone from a pci express device. 1 memory space enable (mse) ? r/w. 0 = disable. memory cycles within the range specified by the memory base and limit registers are master aborted on the backbone. 1 = enable. allows memory cycles within the range specified by the memory base and limit registers can be forwarded to the pci express device. 0 i/o space enable (iose) ? r/w. this bit controls access to the i/o space registers. 0 = disable. i/o cycles within the range specified by the i/o base and limit registers are master aborted on the backbone. 1 = enable. allows i/o cycles within the range specified by the i/o base and limit registers can be forwarded to the pci express device.
intel ? 631xesb/632xesb i/o controller hub datasheet 539 pci express* configuration registers 15.1.4 pcists ? pci status register (pci express ? d28:f0/f1/f2/f3) address offset: 06?07h attribute: r/wc, ro default value: 0010h size: 16 bits 15.1.5 rid ? revision identification register (pci express ? d28:f0/f1/f2/f3) offset address: 08h attribute: ro default value: see bit description size: 8 bits bit description 15 dpe ? detected parity error (dpe) ? r/wc. 0 = no parity error detected. 1 = set when the root port receives a command or data from the backbone with a parity error. this is set even if pcimd.per (d28:f0/f1/f2/f3:04, bit 6) is not set. 14 signaled system error (sse) ? r/wc. 0 = no system error signaled. 1 = set when the root port signals a system error to the internal serr# logic. 13 received master abort (rma) ? r/wc. 0 = root port has not received a completion with unsupported request status from the backbone. 1 = set when the root port receives a completion with unsupported request status from the backbone. 12 received target abort (rta) ? r/wc. 0 = root port has not received a completion with completer abort from the backbone. 1 = set when the root port receives a completion with completer abort from the backbone. 11 signaled target abort (sta) ? r/wc. 0 = no target abort received. 1 = set whenever the root port forwards a target abort received from the downstream device onto the backbone. 10:9 devsel# timing status (dev_sts) ? reserved per the pci express base specification. 8 master data parity error detected (dped) ? r/wc. 0 = no data parity error received. 1 = set when the root port receives a completion with a data parity error on the backbone and pcimd.per (d28:f0/f1/f2/f3:04, bit 6) is set. 7 fast back to back capable (fb2bc) ? reserved per the pci express base specification. 6 reserved 5 66 mhz capable ? reserved per the pci express base specification. 4 capabilities list ? ro. hardwired to 1. indicates the presence of a capabilities list. 3 interrupt status ? ro. indicates status of hot-plug and power management interrupts on the root port that result in intx# message generation. 0 = interrupt is deasserted. 1 = interrupt is asserted. this bit is not set if msi is enabled. if msi is not enabled, this bit is set regardless of the state of pcicmd.interrupt disable bit (d28:f0/f1/f2/f3:04h:bit 10). 2:0 reserved bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register
540 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.6 pi ? programming interface register (pci express ? d28:f0/f1/f2/f3) address offset: 09h attribute: ro default value: 00h size: 8 bits 15.1.7 scc ? sub class code register (pci express ? d28:f0/f1/f2/f3) address offset: 0ah attribute: ro default value: 04h size: 8 bits 15.1.8 bcc ? base class code register (pci express ? d28:f0/f1/f2/f3) address offset: 0bh attribute: ro default value: 06h size: 8 bits 15.1.9 cls ? cache line size register (pci express ? d28:f0/f1/f2/f3) address offset: 0ch attribute: r/w default value: 00h size: 8 bits 15.1.10 plt ? primary latency timer register (pci express ? d28:f0/f1/f2/f3) address offset: 0dh attribute: ro default value: 00h size: 8 bits bit description 7:0 programming interface ? ro. 00h = no specific register level programming interface defined. bit description 7:0 sub class code (scc) ? ro. 04h = pci-to-pci bridge. bit description 7:0 base class code (bcc) ? ro. 06h = indicates the device is a bridge device. bit description 7:0 base class code (bcc) ? r/w. this is read/write but contains no functionality, per the pci express base specification. bit description 7:3 latency count. reserved per the pci express base specification. 2:0 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 541 pci express* configuration registers 15.1.11 headtyp ? header type register (pci express ? d28:f0/f1/f2/f3) address offset: 0eh attribute: ro default value: 81h size: 8 bits 15.1.12 bnum ? bus number register (pci express ? d28:f0/f1/f2/f3) address offset: 18?1ah attribute: r/w default value: 000000h size: 24 bits 15.1.13 iobl ? i/o base and limit register (pci express ? d28:f0/f1/f2/f3) address offset: 1c?1dh attribute: r/w, ro default value: 0000h size: 16 bits bit description 7 multi-function device ? ro. 0 = single-function device. 1 = multi-function device. 6:0 configuration layout. hardwired to 01h, which indicates a pci-to-pci bridge. bit description 23:16 subordinate bus number (sbbn) ? r/w. indicates the highest pci bus number below the bridge. 15:8 secondary bus number (scbn) ? r/w. indicates the bus number the port. 7:0 primary bus number (pbn) ? r/w. indicates the bus number of the backbone. bit description 15:12 i/o limit address (iola) ? r/w. i/o base bits corresponding to address lines 15:12 for 4-kb alignment. bits 11:0 are assumed to be padded to fffh. 11:8 i/o limit address capability (iolc) ? r/o. indicates that the bridge does not support 32-bit i/ o addressing. 7:4 i/o base address (ioba) ? r/w. i/o base bits corresponding to address lines 15:12 for 4-kb alignment. bits 11:0 are assumed to be padded to 000h. 3:0 i/o base address capability (iobc) ? r/o. indicates that the bridge does not support 32-bit i/ o addressing.
542 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.14 ssts ? secondary status register (pci express ? d28:f0/f1/f2/f3) address offset: 1e?1fh attribute: r/wc default value: 0000h size: 16 bits 15.1.15 mbl ? memory base and limit register (pci express ? d28:f0/f1/f2/f3) address offset: 20?23h attribute: r/w default value: 00000000h size: 32 bits accesses that are within the ranges specified in this register will be sent to the attached device if cmd.mse (d28:f0/f1/f2/f3:04:bit 1) is set. accesses from the attached device that are outside the ranges specified will be forwarded to the backbone if cmd.bme (d28:f0/f1/f2/f3:04:bit 2) is set. the comparison performed is mb >= ad[31:20] <= ml. bit description 15 detected parity error (dpe) ? r/wc. 0 = no error. 1 = the port received a poisoned tlp. 14 received system error (rse) ? r/wc. 0 = no error. 1 = the port received an err_fatal or err_nonfatal message from the device. 13 received master abort (rma) ? r/wc. 0 = unsupported request not received. 1 = the port received a completion with ?unsupported request? status from the device. 12 received target abort (rta) ? r/wc. 0 = completion abort not received. 1 = the port received a completion with ?completion abort? status from the device. 11 signaled target abort (sta) ? r/wc. 0 = completion abort not sent. 1 = the port generated a completion with ?completion abort? status to the device. 10:9 secondary devsel# timing status (sdts): reserved per pci express base spec. 8 data parity error detected (dpd) ? r/wc. 0 = conditions below did not occur. 1 = set when the bctrl.pere (d28:fo/f1/f2/f3:3e: bit 0) is set, and either of the following two conditions occurs: ? port receives completion marked poisoned. ? port poisons a write request to the secondary side. 7 secondary fast back to back capable (sfbc): reserved per pci express spec. 6 reserved 5 secondary 66 mhz capable (sc66): reserved per pci express spec. 4:0 reserved bit description 31:20 memory limit (ml) ? r/w. these bits are compared with bits 31:20 of the incoming address to determine the upper 1mb aligned value of the range. 19:16 reserved 15:4 memory base (mb) ? r/w. these bits are compared with bits 31:20 of the incoming address to determine the lower 1mb aligned value of the range. 3:0 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 543 pci express* configuration registers 15.1.16 pmbl ? prefetchable memo ry base and limit register (pci express ? d28:f0/f1/f2/f3) address offset: 24?27h attribute: r/w, ro default value: 00010001h size: 32 bits accesses that are within the ranges specified in this register will be sent to the device if cmd.mse (d28:f0/f1/f2/f3;04, bit 1) is set. accesses from the device that are outside the ranges specified will be forwarded to the backbone if cmd.bme (d28:f0/f1/f2/ f3;04, bit 2) is set. the comparison performed is pmbu32:pmb >= ad[63:32]:ad[31:20] <= pmlu32:pml. 15.1.17 pmbu32 ? prefetchable memory base upper 32 bits register (pci express ? d28:f0/f1/f2/f3) address offset: 28?2bh attribute: r/w default value: 00000000h size: 32 bits 15.1.18 pmlu32 ? prefetchable memory limit upper 32 bits register (pci express ? d28:f0/f1/f2/f3) address offset: 2c?2fh attribute: r/w default value: 00000000h size: 32 bits 15.1.19 capp ? capabilities list pointer register (pci express ? d28:f0/f1/f2/f3) address offset: 34h attribute: r0 default value: 40h size: 8 bits bit description 31:20 prefetchable memory limit (pml) ? r/w. these bits are compared with bits 31:20 of the incoming address to determine the upper 1mb aligned value of the range. 19:16 64-bit indicator (i64l) ? ro. indicates support for 64-bit addressing 15:4 prefetchable memory base (pmb) ? r/w. these bits are compared with bits 31:20 of the incoming address to determine the lower 1mb aligned value of the range. 3:0 64-bit indicator (i64b) ? ro. indicates support for 64-bit addressing bit description 31:0 prefetchable memory base upper portion (pmbu) ? r/w. upper 32-bits of the prefetchable address base. bit description 31:0 prefetchable memory limit upper portion (pmlu) ? r/w. upper 32-bits of the prefetchable address limit. bit description 7:0 capabilities pointer (ptr) ? ro. indicates that the pointer for the first entry in the capabilities list is at 40h in configuration space.
544 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.20 intr ? interrupt information register (pci express ? d28:f0/f1/f2/f3) address offset: 3c?3dh attribute: r/w, ro default value: see bit description size: 16 bits 15.1.21 bctrl ? bridge control register (pci express ? d28:f0/f1/f2/f3) address offset: 3e?3fh attribute: r/w default value: 0000h size: 16 bits bit description 15:8 interrupt pin (ipin) ? ro. indicates the interrupt pin driven by the root port. at reset, this register takes on the following values, which reflect the reset state of the d28ip register in chipset config space: port bits[15:12] bits[11:08] 1 0h d28ip.p1ip 2 0h d28ip.p2ip 3 0h d28ip.p3ip 4 0h d28ip.p4ip note: the value that is programme d into d28ip is always reflected in this register. 7:0 interrupt line (iline) ? r/w. default = 00h. software written value to indicate which interrupt line (vector) the interrupt is connected to. no hardware action is taken on this register. bit description 15:12 reserved 11 discard timer serr# enable (dtse): reserved per pci express spec. 10 discard timer status (dts): reserved per pci express spec. 9 secondary discard timer (sdt): reserved per pci express spec. 8 primary discard timer (pdt): reserved per pci express spec. 7 fast back to back enable (fbe): reserved per pci express spec. 6 secondary bus reset (sbr) ? r/w. triggers a hot reset on the pci express port. 5 master abort mode (mam): reserved per express spec. 4 vga 16-bit decode (v16) ? r/w. 0 = vga range is enabled. 1 = the i/o aliases of the vga range (see bctrl:ve definition below), are not enabled, and only the base i/o ranges can be decoded 3 vga enable (ve) ? r/w. 0 = the ranges below will not be claimed off the backbone by the root port. 1 = the following ranges will be claime d off the backbone by the root port: ? memory ranges a0000h-bffffh ? i/o ranges 3b0h ? 3bbh and 3c0h ? 3dfh, and all aliases of bits 15:10 in any combination of 1?s
intel ? 631xesb/632xesb i/o controller hub datasheet 545 pci express* configuration registers 15.1.22 clist ? capabilities list register (pci express ? d28:f0/f1/f2/f3) address offset: 40?41h attribute: ro default value: 8010h size: 16 bits 15.1.23 xcap ? pci express capabilities register (pci express ? d28:f0/f1/f2/f3) address offset: 42?43h attribute: r/wo, ro default value: 0041h size: 16 bits 15.1.24 dcap ? device capabilities register (pci express ? d28:f0/f1/f2/f3) address offset: 44?47h attribute: ro default value: 00000fe0h size: 32 bits 2 isa enable (ie) ? r/w. this bit only applies to i/o addresses that are enabled by the i/o base and i/o limit registers and are in the first 64kb of pci i/o space. 0 = the root port will not block any forwarding from the backbone as described below. 1 = the root port will block any forwarding from the backbone to the device of i/o transactions addressing the last 768 bytes in each 1kb block (offsets 100h to 3ffh). 1 serr# enable (se) ? r/w. 0 = the messages described below are not forwarded to the backbone. 1 = err_cor, err_nonfatal, and err_fatal messages received are forwarded to the backbone. 0 parity error response enable (pere) ? r/w. when set, 0 = poisoned write tlps and completions indicati ng poisoned tlps will not set the ssts.dpd (d28:f0/f1/f2/f3:1e, bit 8). 1 = poisoned write tlps and completions indicating poisoned tlps will set the ssts.dpd (d28:f0/ f1/f2/f3:1e, bit 8). bit description bit description 15:8 next capability (next) ? ro. value of 80h indicates the location of the next pointer. 7:0 capability id (cid) ? ro. indicates this is a pci express capability. bit description 15:14 reserved 13:9 interrupt message number (imn) ? ro. the intel ? 631xesb/632xesb i/o controller hub does not have multiple msi interrupt numbers. 8 slot implemented (si) ? r/wo. indicates whether the root port is connected to a slot. slot support is platform specific. bios programs this field, and it is maintained until a platform reset. 7:4 device / port type (dt) ? ro. indicates this is a pci express root port. 3:0 capability version (cv) ? ro. indicates pci express 1.0. bit description 31:28 reserved 27:26 captured slot power limit scale (csps) ? ro. not supported. 25:18 captured slot power limit value (cspv) ? ro. not supported. 17:15 reserved 14 power indicator present (pip) ? ro. indicates no power indicator is present on the root port.
546 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.25 dctl ? device control register (pci express ? d28:f0/f1/f2/f3) address offset: 48?49h attribute: r/w, ro default value: 0000h size: 16 bits 13 attention indicator present (aip) ? ro. indicates no attention indicator is present on the root port. 12 attention button present (abp) ? ro. indicates no attention button is present on the root port. 11:9 endpoint l1 acceptable latency (e1al) ? ro. indicates more than 4 s. this field essentially has no meaning for root ports since root ports are not endpoints. 8:6 endpoint l0 acceptable latency (e0al) ? ro. indicates more than 64 s. this field essentially has no meaning for root ports since root ports are not endpoints. 5 extended tag field supported (etfs) ? ro. indicates that 8-bit tag fields are supported. 4:3 phantom functions supported (pfs) ? ro. no phantom functions supported. 2:0 max payload size supported (mps) ? ro. indicates the maximum payload size supported is 128b. bit description bit description 15 reserved 14:12 max read request size (mrrs) ? ro. hardwired to 0. 11 enable no snoop (ens) ? ro. not supported. the root port will never issue non-snoop requests. 10 aux power pm enable (apme) ? r/w. the os will set this bit to 1 if the device connected has detected aux power. it has no effect on the root port otherwise. 9 phantom functions enable (pfe) ? ro. not supported. 8 extended tag field enable (etfe) ? ro. not supported. 7:5 max payload size (mps) ? r/w. the root port only supports 128b payloads, regardless of the programming of this field. 4 enable relaxed ordering (ero) ? ro. not supported. 3 unsupported request reporting enable (ure) ? r/w. 0 = the root port will ignore unsupported request errors. 1 = the root port will generate errors when detecting an unsupported request. 2 fatal error reporting enable (fee) ? r/w. 0 = the root port will ignore fatal errors. 1 = the root port will generate errors when detecting a fatal error. 1 non-fatal error reporting enable (nfe) ? r/w. 0 = the root port will ignore non-fatal errors. 1 = the root port will generate errors when detecting a non-fatal error. 0 correctable error reporting enable (cee) ? r/w. 0 = the root port will ig nore correctable errors. 1 = the root port will generate errors when detecting a correctable error.
intel ? 631xesb/632xesb i/o controller hub datasheet 547 pci express* configuration registers 15.1.26 dsts ? device status register (pci express ? d28:f0/f1/f2/f3) address offset: 4a?4bh attribute: r/wc, ro default value: 0010h size: 16 bits 15.1.27 lcap ? link capabilities register (pci express ? d28:f0/f1/f2/f3) address offset: 4c?4fh attribute: r/w, ro default value: see bit description size: 32 bits bit description 15:6 reserved 5 transactions pending (tdp) ? ro. this bit has no meaning for the root port since only one transaction may be pending to the intel ? 631xesb/632xesb i/o controller hub, so a read of this bit cannot occur until it has already returned to 0. 4 aux power detected (apd) ? ro. the root port contains aux power for wakeup. 3 unsupported request detected (urd) ? r/wc. indicates an unsupported request was detected. 2 fatal error detected (fed) ? r/wc. indicates a fatal error was detected. 0 = fatal has not occurred. 1 = a fatal error occurred from a data link protocol error, link training error, buffer overflow, or malformed tlp. 1 non-fatal error detected (nfed) ? r/wc. indicates a non-fatal error was detected. 0 = non-fatal has not occurred. 1 = a non-fatal error occurred from a poisoned tlp, unexpected completions, unsupported requests, completer abort, or completer timeout. 0 correctable error detected (ced) ? r/wc. indicates a correctable error was detected. 0 = correctable has not occurred. 1 = the port received an internal correctable error from receiver errors / framing errors, tlp crc error, dllp crc error, replay num rollover, replay timeout. bit description 31:24 port number (pn) ? ro. indicates the port number for the root port. this value is different for each implemented port: function # port # value of pn field d28:f0 1 01h d28:f1 2 02h d28:f2 3 03h d28:f3 4 04h 23:18 reserved 17:15 l1 exit latency (el1) ? ro. set to 010b to indicate an exit latency of 2 s to 4 s. 14:12 l0s exit latency (el0) ? ro. indicates as exit latency based upon common-clock configuration. lclt.ccc value of el0 (these bits) 0 mpc.ucel (d28:f0/f1/f2/f3:d8h:bits20:18) 1 mpc.ccel (d28:f0/f1/f2/f3:d8h:bits17:15) note: lclt.ccc is at d28:f0/f1/f2/f3:50h:bit 6
548 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.28 lctl ? link control register (pci express ? d28:f0/f1/f2/f3) address offset: 50?51h attribute: r/w, r/w (special), ro default value: 0000h size: 16 bits 11:10 active state link pm support (apms) ? r/o. indicates what level of active state link power management is supported on the root port. bits definition 00 neither l0s nor l1 are supported 01 l0s entry supported 10 l1 entry supported 11 both l0s and l1 entry supported 9:4 maximum link width (mlw) ? ro. for the root ports, several values can be taken, based upon the value of the chipset config register field rpc.pc (chipset config registers:offset 0224h:bits1:0): value of mlw field port # rpc.pc=00b rpc.pc=01bprc.pc=11b 1 01h 02h04h 2 01h 01h01h 3 01h 01h01h 4 01h 01h01h 3:0 maximum link speed (mls) ? ro. set to 1h to indicate the link speed is 2.5 gb/s. bit description bit description 15:8 reserved 7 extended synch (es) ? r/w. 0 = extended synch disabled. 1 = forces extended transmission of fts ordered sets in fts and extra ts2 at exit from l1 prior to entering l0. 6 common clock configuration (ccc) ? r/w. 0 = the intel ? 631xesb/632xesb i/o controller hub and device are not using a common reference clock. 1 = the intel ? 631xesb/632xesb i/o controller hub and device are operating with a distributed common reference clock. 5 retrain link (rl) ? ro/w. 0 = this bit always returns 0 when read. 1 = the root port will train its downstream link. note: software uses lsts.lt (d28:f0/f1/f2/f3:52, bit 11) and lsts.lte (d28:f0/f1/f2/f3:52, bit 10) to check the status of training. 4 link disable (ld) ? r/w. 0 = link enabled. 1 = the root port will disable the link. 3 read completion boundary control (rcbc) ? ro. indicates the read completion boundary is 64 bytes. 2 reserved 1:0 active state link pm control (apmc) ? r/w. indicates whether the root port should enter l0s or l1 or both. bits definition 00 disabled 01 l0s entry is enabled 10 l1 entry is enabled 11 l0s and l1 entry enabled
intel ? 631xesb/632xesb i/o controller hub datasheet 549 pci express* configuration registers 15.1.29 lsts ? link status register (pci express ? d28:f0/f1/ f2/f3) address offset: 52?53h attribute: ro default value: see bit description size: 16 bits 15.1.30 slcap ? slot capabilities register (pci express ? d28:f0/f1/f2/f3) address offset: 54?57h attribute: r/wo, ro default value: 00000060h size: 32 bits bit description 15:13 reserved 12 slot clock configuration (scc) ? ro. set to 1b to indicate that the intel ? 631xesb/632xesb i/o controller hub uses the same reference clock as on the platform and does not generate its own clock. 11 link training (lt) ? ro. default value is 0b. 0 = link training completed. 1 = link training is occurring. 10 link training error (lte ) ? ro. not supported. set value is 0b. 9:4 negotiated link width (nlw) ? ro. this field indicates the negotiated width of the given pci express link. port # possible values 1 000000b, 000001b, 000100b,001000b 2 000000b, 000001b, 000100b 3 000001b 4 000000b, 000001b, 000100b,001000b note: 000000b =link failure, 000001b = x1 link width, 0000100 = x4 link width, 0001000 = x8 link width 3:0 link speed (ls) ? ro. this field indicates the negotiated link speed of the given pci express link. 01h = link is 2.5 gb/s. bit description 31:19 physical slot number (psn) ? r/wo. this is a value that is unique to the slot number. bios sets this field and it remains set until a platform reset. 18:17 reserved 16:15 slot power limit scale (sls) ? r/wo. specifies the scale used for the slot power limit value. bios sets this field and it remains set until a platform reset. 14:7 slot power limit value (slv) ? r/wo. specifies the upper limit (in conjunction with sls value), on the upper limit on power supplied by the slot. the two values together indicate the amount of power in watts allowed for the slot. bios sets this field and it remains set until a platform reset. 6 hot-plug capable (hpc) ? ro. 1b = indicates that hot-plug is supported. 5 hot-plug surprise (hps) ? ro. 1b = indicates the device may be removed from the slot without prior notification. 4 power indicator present (pip) ? ro. 0b = indicates that a power indicator led is not present for this slot. 3 attention indicator present (aip) ? ro. 0b = indicates that an attention indicator led is not present for this slot.
550 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.31 slctl ? slot control register (pci express ? d28:f0/f1/f2/f3) address offset: 58?59h attribute: r/w, ro default value: 0000h size: 16 bits 2 mrl sensor present (msp) ? ro. 0b = indicates that an mrl sensor is not present. 1 power controller present (pcp) ? ro. 0b = indicates that a power controller is not implemented for this slot. 0 attention button present (abp) ? ro. 0b = indicates that an attention button is not implemented for this slot. bit description bit description 15:11 reserved 10 power controller control (pcc) ? ro.this bit has no meaning for module based hot-plug. 9:8 power indicator control (pic) ? r/w. when read, the current state of the power indicator is returned. when written, the appropriate power_indicator_* messages are sent. defined encodings are: bits definition 11 off 10 blink 01 on 00 reserved 7:6 attention indicator control (aic) ? r/w. when read, the current state of the attention indicator is returned. when written, the appropriate attention_indicator_* messages are sent. defined encodings are: bits definition 11 off 10 blink 01 on 00 reserved 5 hot-plug interrupt enable (hpe) ? r/w. 0 = hot-plug interrupts based on hot-plug events is disabled. 1 = enables generation of a hot-plug interrupt on enabled hot-plug events. 4 command completed interrupt enable (cce) ? r/w. 0 = hot-plug interrupts based on command completions is disabled. 1 = enables the generation of a hot-plug interrupt when a command is completed by the hot-plug controller. 3 presence detect changed enable (pde) ? r/w. 0 = hot-plug interrupts based on presence detect logic changes is disabled. 1 = enables the generation of a hot-plug interrupt or wake message when the presence detect logic changes state. 2 mrl sensor changed enable (mse) ? r/w. mse not supported. 1 power fault detected enable (pfe) ? r/w. pfe not supported. 0 attention button pressed enable (abe) ? r/w. when set, enables the generation of a hot-plug interrupt when the attention button is pressed. 0 = hot-plug interrupts based on the attention button being pressed is disabled. 1 = enables the generation of a hot-plug interrupt when the attention button is pressed.
intel ? 631xesb/632xesb i/o controller hub datasheet 551 pci express* configuration registers 15.1.32 slsts ? slot status register (pci express ? d28:f0/f1/f2/f3) address offset: 5a?5bh attribute: r/wc, ro default value: 0000h size: 16 bits 15.1.33 rctl ? root control register (pci express ? d28:f0/f1/f2/f3) address offset: 5c?5dh attribute: r/w default value: 0000h size: 16 bits bit description 15:7 reserved 6 presence detect state (pds) ? ro. if xcap.si (d28:f0/f1/f2/f3:42h:bit 8) is set (indicating that this root port spawns a slot), then this bit: 0 = indicates the slot is empty. 1 = indicates the slot has a device connected. otherwise, if xcap.si is cleared, this bit is always set (1). 5 mrl sensor state (ms) ? reserved as the mrl sensor is not implemented. 4 command completed (cc) ? r/wc. 0 = issued command not completed. 1 = the hot-plug controller completed an issued command. 3 presence detect changed (pdc) ? r/wc. 0 = no change in the pds bit. 1 = the pds bit changed states. 2 mrl sensor changed (msc) ? reserved as the mrl sensor is not implemented. 1 power fault detected (pfd) ? reserved as a power controller is not implemented. 0 attention button pressed (abp) ? r/wc. 1 = the attention button has not been pressed. 1 = the attention button is pressed. bit description 15:4 reserved 3 pme interrupt enable (pie) ? r/w. 0 = interrupt generation disabled. 1 = interrupt generation enabled when rsts.is (d28:f0/f1/f2/f3:06, bit 3) is in a set state (either due to a 0 to 1 transition, or due to this bit being set with rsts.is already set). 2 system error on fatal error enable (sfe) ? r/w. 0 = an serr# will not be generated. 1 = an serr# will be generated, assuming cmd.see (d28:f0/f1/f2/f3:04, bit 8) is set, if a fatal error is reported by any of the devices in the hier archy of this root port, including fatal errors in this root port. 1 system error on non-fatal error enable (sne) ? r/w. 0 = an serr# will not be generated. 1 = an serr# will be generated, assuming cmd.see (d28:f0/f1/f2/f3:04, bit 8) is set, if a non- fatal error is reported by any of the devices in the hierarchy of this root port, including non- fatal errors in this root port. 0 system error on correctable error enable (sce) ? r/w. 0 = an serr# will not be generated. 1 = an serr# will be generated, assuming cmd.see (d28:f0/f1/f2/f3:04, bit 8) if a correctable error is reported by any of the devices in the hi erarchy of this root port, including correctable errors in this root port.
552 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.34 rsts ? root status register (pci express ? d28:f0/f1/f2/f3) address offset: 60?63h attribute: r/wc, ro default value: 00000000h size: 32 bits 15.1.35 mid ? message signaled in terrupt identifiers register (pci express ? d28:f0/f1/f2/f3) address offset: 80?81h attribute: ro default value: 9005h size: 16 bits 15.1.36 mc ? message signaled interrupt message control register (pci express ? d28:f0/f1/f2/f3) address offset: 82?83h attribute: r/w, ro default value: 0000h size: 16 bits bit description 31:18 reserved 17 pme pending (pp) ? ro. 0 = when the original pme is cleared by software, it will be set again, the requestor id will be updated, and this bit will be cleared. 1 = indicates another pme is pending when the pme status bit is set. 16 pme status (ps) ? r/wc. 0 = pme was not asserted. 1 = indicates that pme was asserted by the requestor id in rid. subsequent pmes are kept pending until this bit is cleared. 15:0 pme requestor id (rid) ? ro. indicates the pci requestor id of the last pme requestor. valid only when ps is set. bit description 15:8 next pointer (next) ? ro. indicates the location of the next pointer in the list. 7:0 capability id (cid) ? ro. capabilities id indicates msi. bit description 15:8 reserved 7 64 bit address capable (c64) ? ro. capable of generating a 32-bit message only. 6:4 multiple message enable (mme) ? r/w. these bits are r/w for software compatibility, but only one message is ever sent by the root port. 3:1 multiple message capable (mmc) ? ro. only one message is required. 0 msi enable (msie) ? r/w. 0 = msi is disabled. 1 = msi is enabled and traditional interrupt pins are not used to generate interrupts. note: cmd.bme (d28:f0/f1/f2/f3:04h:bit 2) must be set for an msi to be generated. if cmd.bme is cleared, and this bit is set, no interrupts (not even pin based) are generated.
intel ? 631xesb/632xesb i/o controller hub datasheet 553 pci express* configuration registers 15.1.37 ma ? message signaled interrupt message address register (pci express ? d28:f0/f1/f2/f3) address offset: 84?87h attribute: r/w default value: 00000000h size: 32 bits 15.1.38 md ? message signaled in terrupt message data register (pci express ? d28:f0/f1/f2/f3) address offset: 88?89h attribute: r/w default value: 0000h size: 16 bits 15.1.39 svcap ? subsystem vendor capability register (pci express ? d28:f0/f1/f2/f3) address offset: 90?91h attribute: ro default value: aoodh size: 16 bits 15.1.40 svid ? subsystem vendor identification register (pci express ? d28:f0/f1/f2/f3) address offset: 94?97h attribute: r/wo default value: 00000000h size: 32 bits bit description 31:2 address (addr) ? r/w. lower 32 bits of the system specified message address, always dw aligned. 1:0 reserved bit description 15:0 data (data) ? r/w. this 16-bit field is programmed by system software if msi is enabled. its content is driven onto the lower word (pci ad[15:0]) during the data phase of the msi memory write transaction. bit description 15:8 next capability (next) ? ro. indicates the location of the next pointer in the list. 7:0 capability identifier (cid) ? ro. value of 0dh indicates this is a pci bridge subsystem vendor capability. bit description 31:16 subsystem identifier (sid) ? r/wo. indicates the subsystem as identified by the vendor. this field is write once and is locked down until a bridge reset occurs (not the pci bus reset). 15:0 subsystem vendor identifier (svid) ? r/wo. indicates the manufacturer of the subsystem. this field is write once and is locked down unt il a bridge reset occurs (not the pci bus reset).
554 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.41 pmcap ? power management capability register (pci express ? d28:f0/f1/f2/f3) address offset: a0?a1h attribute: ro default value: 0001h size: 16 bits 15.1.42 pmc ? pci power management capabilities register (pci express ? d28:f0/f1/f2/f3) address offset: a2?a3h attribute: ro default value: c802h size: 16 bits 15.1.43 pmcs ? pci power management control and status register (pci express ? d28:f0/f1/f2/f3) address offset: a4?a7h attribute: r/w, ro default value: 00000000h size: 32 bits bit description 15:8 next capability (next) ? ro. indicates this is the last item in the list. 7:0 capability identifier (cid) ? ro. value of 01h indicates this is a pci power management capability. bit description 15:11 pme_support (pmes) ? ro. indicates pme# is supported for states d0, d3 hot and d3 cold . the root port does not generate pme#, but reporting that it does is necessary for some legacy operating systems to enable pme# in devices connected behind this root port. 10 d2_support (d2s) ? ro. the d2 state is not supported. 9 d1_support (d1s) ? ro the d1 state is not supported. 8:6 aux_current (ac) ? ro. reports 375 ma maximum suspend well current required when in the d3 cold state. 5 device specific initialization (dsi) ? ro. indicates that no device-specific initialization is required. 4 reserved 3 pme clock (pmec) ? ro. indicates that pci clock is not required to generate pme#. 2:0 version (vs) ? ro. indicates support for revision 1.1 of the pci power management specification. bit description 31:24 reserved 23 bus power / clock control enable (bpce) ? reserved per pci express specification. 22 b2/b3 support (b23s) ? reserved per pci express specification. 21:16 reserved 15 pme status (pmes) ? ro. indicates a pme was received on the downstream link. 14:9 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 555 pci express* configuration registers 15.1.44 mpc ? miscellaneous port configuration register (pci express ? d28:f0/f1/f2/f3) address offset: d8?dbh attribute: r/w default value: 00110000h size: 32 bits 8 pme enable (pmee) ? r/w. indicates pme is enabled. the root port takes no action on this bit, but it must be r/w for some legacy operating systems to enable pme# on devices connected to this root port. 7:2 reserved 1:0 power state (ps) ? ro. this field is used both to determine the current power state of the sata controller and to set a new power state. the values are: ? 00 ? d0 state ? 11 ? d3 hot state note: when in the d3 hot state, the controller?s configuration space is available, but the i/o and memory spaces are not. additionally, interrupts are blocked. if software attempts to write a ?10? or ?01? to these bits, the write will be ignored. bit description bit description 31 power management sci enable (pmce) ? r/w. 0 = sci generation based on a power management event is disabled. 1 = enables the root port to generate sci whenever a power management event is detected. 30 hot-plug sci enable (hpce) ? r/w. 0 = sci generation based on a hot-plug event is disabled. 1 = enables the root port to generate sci whenever a hot-plug event is detected. 29:21 reserved 20:18 unique clock exit latency (ucel) ? r/w. this value represents the l0s exit latency for unique- clock configurations (lctl.ccc = 0) (d28:f0/f1/f2/f3:offset 50h:bit 6). it defaults to 512 ns to less than 1 s, but may be overridden by bios. 17:15 common clock exit latency (ccel) ? r/w. this value represents the l0s exit latency for common-clock configurations (lctl.ccc = 1) (d28:f0/f1/f2/f3:offset 50h:bit 6). it defaults to 128 ns to less than 256 ns, but may be overridden by bios. 14:8 reserved 7 port i/oxapic enable (pae) ? r/w. 0 = hole is disabled. 1 = a range is opened through the bridge for the following memory addresses: port #address 1 fec1_0000h ? fec1_7fffh 2 fec1_8000h ? fec1_ffffh 3 fec2_0000h ? fec2_7fffh 4 fec2_8000h ? fec2_ffffh 6:2 reserved 1 hot-plug smi enable (hpme) ? r/w. 0 = smi generation based on a hot-plug event is disabled. 1 = enables the root port to generate smi whenever a hot-plug event is detected. 0 power management smi enable (pmme) ? r/w. 0 = smi generation based on a power management event is disabled. 1 = enables the root port to generate smi whenever a power management event is detected.
556 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.45 smscs ? smi/sci status register (pci express ? d28:f0/f1/f2/f3) address offset: dc?dfh attribute: r/wc default value: 00000000h size: 32 bits 15.1.46 rwc ? resume well control register (pci express ? d28:f0/f1/f2/f3) address offset: e0h attribute: r/w default value: 00h size: 8 bits 15.1.47 vch ? virtual channel capability header register (pci express ? d28:f0/f1/f2/f3) address offset: 100?103h attribute: ro default value: 18010002h size: 32 bits bit description 31 power management sci status (pmcs) ? r/wc. this bit is set if the hot-plug controller needs to generate an interrupt, and this interrupt has been routed to generate an sci. 30 hot-plug sci status (hpcs) ? r/wc. this bit is set if the hot-plug controller needs to generate an interrupt, and has this interrupt been routed to generate an sci. 29:4 reserved 3 hot-plug command completed smi status (hpccm) ? r/wc. this bit is set when slsts.cc (d28:f0/f1/f2/f3:5a, bit 4) transitions from 0 to 1, and mpc.hpme (d28:f0/f1/f2/f3:d8, bit 1) is set. when this bit is set, an smi# will be generated. 2 hot-plug attention button smi status (hpabm) ? r/wc. this bit is set when slsts.abp (d28:f0/f1/f2/f3:5a, bit 0) transitions from 0 to 1, and mpc.hpme (d28:f0/f1/f2/f3:d8, bit 1) is set. when this bit is set, an smi# will be generated. 1 hot-plug presence detect smi status (hppdm) ? r/wc. this bit is set when slsts.pdc (d28:f0/f1/f2/f3:5a, bit 3) transitions from 0 to 1, and mpc.hpme (d28:f0/f1/f2/f3:d8, bit 1) is set. when this bit is set, an smi# will be generated. 0 power management smi status (pmms) ? r/wc. this bit is set when rsts.ps (d28:f0/f1/f2/ f3:60, bit 16) transitions from 0 to?, and mpc.pmme (d28:f0/f1/f2/f3:d8, bit 1) is set. bit description 7:1 reserved 0 beacon enable (be) ? r/w. 0 = resuming from a beacon is disabled. 1 = enables receiving beacon signaling and resumi ng the port (more power will be consumed when in s3). bit description 31:20 next capability offset (nco) ? ro. indicates the next item in the list. 19:16 capability version (cv) ? ro. indicates this is version 1 of the capability structure by the pci sig. 15:0 capability id (cid) ? ro. indicates this is the virtual channel capability item.
intel ? 631xesb/632xesb i/o controller hub datasheet 557 pci express* configuration registers 15.1.48 vcap1 ? virtual channel capability 1 register (pci express ? d28:f0/f1/f2/f3) address offset: 104?107h attribute: ro default value: 00000001h size: 32 bits 15.1.49 vcap2 ? virtual channel capability 2 register (pci express ? d28:f0/f1/f2/f3) address offset: 108?10bh attribute: ro default value: 00000001h size: 32 bits 15.1.50 pvc ? port virtual channel control register (pci express ? d28:f0/f1/f2/f3) address offset: 10c?10dh attribute: r/w, ro default value: 0000h size: 16 bits bit description 31:12 reserved 11:10 port arbitration table entry size (pats) ? ro. must be set to 00 for root ports are per pci express specification. 9:8 reference clock (rc) ? ro. fixed at 100ns for this version of the pci express specification. 7 reserved. 6:4 low priority extended vc count (lpevc) ? ro. indicates that there are no additional vcs of low priority with extended capabilities. 3 reserved. 2:0 extended vc count (evc) ? ro. when ffpci express2 is cleared, this field is ?001?, to indicate that there is one additional vc (vc1) that exists with extended capabilities. when fpci express2 is set, this field is ?000? to indicate that there are no additional vcs with extended capabilities. bit description 31:24 vc arbitration table offset (ato) ? ro. indicates that no table is present for vc arbitration since it is fixed. 23:8 reserved. 7:0 vc arbitration capability (ac) ? ro. indicates that the vc arbitration is fixed in the root port. vc1 is highest priority, and vc0 is lowest priority. bit description 15:4 reserved. 3:1 vc arbitration select (as) ? r/w. indicates which vc should be programmed in the vc arbitration table. the root port takes no action on the setting of this field since there is no arbitration table. 0 load vc arbitration table (lat) ? ro. indicates that the table programmed should be loaded into the vc arbitration table. this bit is defined as read/write with always returning 0 on reads. since there is no vc arbitration table in the root port, this bit can be built as ro.
558 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.51 pvs ? port virtual channel status register (pci express ? d28:f0/f1/f2/f3) address offset: 10e?10fh attribute: ro default value: 0000h size: 16 bits 15.1.52 v0cap ? virtual channel 0 resource capability register (pci express ? d28:f0/f1/f2/f3) address offset: 110?113h attribute: ro default value: 00000001h size: 32 bits 15.1.53 v0ctl ? virtual channel 0 resource control register (pci express ? d28:f0/f1/f2/f3) address offset: 114?117h attribute: r/w, ro default value: 800000ffh size: 32 bits bit description 15:1 reserved. 0 vc arbitration table status (vas) ? ro. indicates the coherency status of the vc arbitration table when it is being updated. this field is always 0 in the root port since there is no vc arbitration table. bit description 31:24 port arbitration table offset (at) ? ro. this vc implements no port arbitration table since the arbitration is fixed. 23 reserved. 22:16 maximum time slots (mts) ? ro. this vc implements fixed arbitration, and therefore this field is not used. 15 reject snoop transactions (rts) ? ro. this vc must be able to take snoopable transactions. 14 advanced packet switching (aps) ? ro. this vc is capable of all transactions, not just advanced packet switching transactions. 13:8 reserved. 7:0 port arbitration capability (pac) ? ro. indicates that this vc uses fixed port arbitration. bit description 31 virtual channel enable (en) ? ro. 0 = virtual channel 0 cannot be disabled. 1 = enables the vc. 30:27 reserved. 26:24 virtual channel identifier (vcid) ? ro. indicates the id to use for this virtual channel. 23:20 reserved. 19:17 port arbitration select (pas) ? r/w. indicates which port table is being programmed. the root complex takes no action on this setting since the arbitration is fixed and there is no arbitration table. 16 load port arbitration table (lat) ? ro. the root port does not implement an arbitration table for this virtual channel.
intel ? 631xesb/632xesb i/o controller hub datasheet 559 pci express* configuration registers 15.1.54 v0sts ? virtual channel 0 resource status register (pci express ? d28:f0/f1/f2/f3) address offset: 11a?11bh attribute: ro default value: 0000h size: 16 bits 15.1.55 v1cap ? virtual channel 1 resource capability register (pci express ? d28:f0/f1/f2/f3) address offset: 11c?11fh attribute: ro default value: 00000001h size: 32 bits 15:8 reserved. 7:1 transaction class / virtual channel map (tvm) ? r/w. indicates which transaction classes are mapped to this virtual channel. when a bit is set, this transaction class is mapped to the virtual channel. bit transaction class 7 transaction class 7 6 transaction class 6 5 transaction class 5 4 transaction class 4 3 transaction class 3 2 transaction class 2 1 transaction class 1 0 reserved. transaction class 0 must always mapped to vc0. bit description bit description 15:2 reserved. 1 vc negotiation pending (np) ? ro. 0 = negotiation is not pending. 1 = indicates the virtual channel is still being negotiated with ingress ports. 0 port arbitration tables status (ats). there is no port arbitration table for this vc, so this bit is reserved as 0. bit description 31:24 port arbitration table offset (at) ? ro. this vc implements no port arbitration table since the arbitration is fixed. 23 reserved. 22:16 maximum time slots (mts) ? ro. this vc implements fixed arbitration, and therefore this field is not used. 15 reject snoop transactions (rts) ? ro. this vc must be able to take snoopable transactions. 14 advanced packet switching (aps) ? ro. this vc is capable of all transactions, not just advanced packet switching transactions. 13:8 reserved. 7:0 port arbitration capability (pac) ? ro. indicates that this vc uses fixed port arbitration.
560 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.56 v1ctl ? virtual channel 1 resource control register (pci express ? d28:f0/f1/f2/f3) address offset: 120?123h attribute: r/w, ro default value: 00000000h size: 32 bits 15.1.57 v1sts ? virtual channel 1 resource status register (pci express ? d28:f0/f1/f2/f3) address offset: 126?127h attribute: ro default value: 00000000h size: 16 bits 15.1.58 ues ? uncorrectable error status register (pci express ? d28:f0/f1/f2/f3) address offset: 144?147h attribute: r/wc, ro default value: 00000000000x0xxx0x0x0000000x0000b size: 32 bits this register maintains its state through a platform reset. it loses its state upon suspend. bit description 31 virtual channel enable (en) ? rw. 0 = disable the vc. 1 = enables the vc. 30:27 reserved. 26:24 virtual channel identifier (vcid) ? rw. indicates the id to use for this virtual channel. 23:20 reserved. 19:17 port arbitration select (pas) ? r/w. indicates which port table is being programmed. the root complex takes no action on this setting since the arbitration is fixed and there is no arbitration table. 16 load port arbitration table (lat) ? ro. the root port does not implement an arbitration table for this virtual channel. 15:8 reserved. 7:1 transaction class / virtual channel map (tvm) ? r/w. indicates which transaction classes are mapped to this virtual channel. when a bit is set, this transaction class is mapped to the virtual channel. bit transaction class 7 transaction class 7 6 transaction class 6 5 transaction class 5 4 transaction class 4 3 transaction class 3 2 transaction class 2 1 transaction class 1 0 reserved. transaction class 0 cannot be mapped to vc1. bit description 15:2 reserved. 1 vc negotiation pending (np) ? ro. 0 = negotiation is not pending. 1 = indicates the virtual channel is still being negotiated with ingress ports. 0 port arbitration tables status (ats) ? ro. indicates the coherency status of the port arbitration table. this bit is set during a table update, and cleared after the table has been updated.
intel ? 631xesb/632xesb i/o controller hub datasheet 561 pci express* configuration registers 15.1.59 uem ? uncorrectable error mask (pci express ? d28:f0/f1/f2/f3) address offset: 148?14bh attribute: r/wo, ro default value: 00000000h size: 32 bits when set, the corresponding error in the ues register is masked, and the logged error will cause no action. when cleared, the corresponding error is enabled. bit description 31:21 reserved 20 unsupported request error status (ure) ? r/wc. indicates an unsupported request was received. 19 ecrc error status (ee) ? ro. ecrc is not supported. 18 malformed tlp status (mt) ? r/wc. indicates a malformed tlp was received. 17 receiver overflow status (ro) ? r/wc. indicates a receiver overflow occurred. 16 unexpected completion status (uc) ? r/wc. indicates an unexpected completion was received. 15 completion abort status (ca) ? r/wc. indicates a completer abort was received. 14 completion timeout status (ct) ? r/wc. indicates a completion timed out. 13 flow control protocol error status (fcpe) ? ro. flow control protocol errors not supported. 12 poisoned tlp status (pt) ? r/wc. indicates a poisoned tlp was received. 11:5 reserved 4 data link protocol error status (dlpe) ? r/wc. indicates a data link protocol error occurred. 3:1 reserved 0 training error status (te) ? ro. training errors not supported. bit description 31:21 reserved 20 unsupported request error mask (ure) ? r/wo. 0 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is enabled. 1 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is masked. 19 ecrc error mask (ee) ? ro. ecrc is not supported. 18 malformed tlp mask (mt) ? r/wo. 0 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is enabled. 1 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is masked. 17 receiver overflow mask (ro) ? r/wo. 0 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is enabled. 1 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is masked. 16 unexpected completion mask (uc) ? r/wo. 0 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is enabled. 1 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is masked. 15 completion abort mask (ca) ? r/wo. 0 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is enabled. 1 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is masked. 14 completion timeout mask (ct) ? r/wo. 0 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is enabled. 1 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is masked. 13 flow control protocol error mask (fcpe) ? ro. flow control protocol errors not supported.
562 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.60 uev ? uncorrectable error severity (pci express ? d28:f0/f1/f2/f3) address offset: 14c?14fh attribute: ro default value: 00060011h size: 32 bits 12 poisoned tlp mask (pt) ? r/wo. 0 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is enabled. 1 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is masked. 11:5 reserved 4 data link protocol error mask (dlpe) ? r/wo. 0 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is enabled. 1 = the corresponding error in the ues register (d28:f0/f1/f2/f3:144) is masked. 3:1 reserved 0 training error mask (te) ? ro. training errors not supported bit description bit description 31:21 reserved 20 unsupported request error severity (ure) ? ro. 0 = error considered non-fatal. (default) 1 = error is fatal. 19 ecrc error severity (ee) ? ro. ecrc is not supported. 18 malformed tlp severity (mt) ? ro. 0 = error considered non-fatal. 1 = error is fatal. (default) 17 receiver overflow severity (ro) ? ro. 0 = error considered non-fatal. 1 = error is fatal. (default) 16 unexpected completion severity (uc) ? ro. 0 = error considered non-fatal. (default) 1 = error is fatal. 15 completion abort severity (ca) ? ro. 0 = error considered non-fatal. (default) 1 = error is fatal. 14 completion timeout severity (ct) ? ro. 0 = error considered non-fatal. (default) 1 = error is fatal. 13 flow control protocol error severity (fcpe) ? ro. flow control protocol errors not supported. 12 poisoned tlp severity (pt) ? ro. 0 = error considered non-fatal. (default) 1 = error is fatal. 11:5 reserved 4 data link protocol error severity (dlpe) ? ro. 0 = error considered non-fatal. 1 = error is fatal. (default) 3:1 reserved 0 training error severity (te) ? ro. te is not supported.
intel ? 631xesb/632xesb i/o controller hub datasheet 563 pci express* configuration registers 15.1.61 ces ? correctable error status register (pci express ? d28:f0/f1/f2/f3) address offset: 150?153h attribute: r/wc default value: 00000000h size: 32 bits 15.1.62 cem ? correctable error mask register (pci express ? d28:f0/f1/f2/f3) address offset: 154?157h attribute: r/wo default value: 00000000h size: 32 bits when set, the corresponding error in the ces register is masked, and the logged error will cause no action. when cleared, the corresponding error is enabled. 15.1.63 aecc ? advanced error capabilities and control register (pci express ? d28:f0/f1/f2/f3) address offset: 158?15bh attribute: ro default value: 00000000h size: 32 bits bit description 31:13 reserved 12 replay timer timeout status (rtt) ? r/wc. indicates the replay timer timed out. 11:9 reserved 8 replay number rollover status (rnr) ? r/wc. indicates the replay number rolled over. 7 bad dllp status (bd) ? r/wc. indicates a bad dllp was received. 6 bad tlp status (bt) ? r/wc. indicates a bad tlp was received. 5:1 reserved 0 receiver error status (re) ? r/wc. indicates a receiver error occurred. bit description 31:13 reserved 12 replay timer timeout mask (rtt) ? r/wo. mask for replay timer timeout. 11:9 reserved 8 replay number rollover mask (rnr) ? r/wo. mask for replay number rollover. 7 bad dllp mask (bd) ? r/wo. mask for bad dllp reception. 6 bad tlp mask (bt) ? r/wo. mask for bad tlp reception. 5:1 reserved 0 receiver error mask (re) ? r/wo. mask for receiver errors. bit description 31:9 reserved 8 ecrc check enable (ece) ? ro. ecrc is not supported. 7 ecrc check capable (ecc) ? ro. ecrc is not supported. 6 ecrc generation enable (ege) ? ro. ecrc is not supported. 5 ecrc generation capable (egc) ? ro. ecrc is not supported. 4:0 first error pointer (fep) ? ro.
564 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers 15.1.64 res ? root error status register (pci express ? d28:f0/f1/f2/f3) address offset: 170?173h attribute: r/wc, ro default value: 00000000h size: 32 bits 15.1.65 rctcl ? root complex topology capability list register (pci express ? d28:f0/f1/f2/f3) address offset: 180?183h attribute: ro default value: 00010005h size: 32 bits 15.1.66 esd ? element self description register (pci express ? d28:f0/f1/f2/f3) address offset: 184?187h attribute: ro default value: see description size: 32 bits bit description 31:27 advanced error interrupt message number (aemn) ? ro. there is only one error interrupt allocated. 26:4 reserved 3 multiple err_fatal/nonfatal received (menr) ? ro. only one error will be captured. 2 err_fatal/nonfatal received (enr) ? r/wc. 0 = no error message received. 1 = either a fatal or a non-fatal error message is received. 1 multiple err_cor received (mcr) ? ro. only one error will be captured. 0 err_cor received (cr) ? r/wc. 0 = no error message received. 1 = a correctable error message is received. bit description 31:20 next capability (next) ? ro. indicates the next item in the list, in this case, end of list. 19:16 capability version (cv) ? ro. indicates the version of the capability structure. 15:0 capability id (cid) ? ro. indicates this is a root complex topology capability. bit description 31:24 port number (pn) ? ro. indicate the ingress port number for the root port. there is a different value per port: port #value 1 01h 2 02h 3 03h 4 04h 23:16 component id (cid) ? ro. this field returns the value of the esd.cid field of the chip configuration section, that is programmed by platform bios, since the root port is in the same component as the rcrb. 15:8 number of link entries (nle) ? ro. (default value is 01h) indicates one link entry (corresponding to the rcrb). 7:4 reserved. 3:0 element type (et) ? ro. (default value is 0h) indicates that the element type is a root port.
intel ? 631xesb/632xesb i/o controller hub datasheet 565 pci express* configuration registers 15.1.67 uld ? upstream link description register (pci express ? d28:f0/f1/f2/f3) address offset: 18c?18fh attribute: ro default value: 00000001h size: 32 bits 15.1.68 ulba ? upstream link base address register (pci express ? d28:f0/f1/f2/f3) address offset: 190?197h attribute: ro default value: see description size: 64 bits bit description 31:24 target port number (pn) ? ro. indicates the port number of the rcrb. 23:16 target component id (tcid) ? ro. this field returns the value of the esd.cid field of the chip configuration section, that is programmed by platform bios, since the root port is in the same component as the rcrb. 15:2 reserved. 1 link type (lt) ? ro. indicates that the link points to the rcrb. 0 link valid (lv) ? ro. indicates that this link entry is valid. bit description 63:32 base address upper (bau) ? ro. the rcrb of the intel ? 631xesb/632xesb i/o controller hub lives in 32-bit space. 31:0 base address lower (bal) ? ro. this field matches the rcba register (d31:f0:offset f0h) value in the lpc bridge.
566 intel ? 631xesb/632xesb i/o controller hub datasheet pci express* configuration registers
intel ? 631xesb/632xesb i/o controller hub datasheet 567 uhci controllers registers 16 uhci controllers registers 16.1 pci configuration regi sters (usb ? d29:f0/f1/ f2/f3) note: register address locations that are not shown in ta bl e 1 6 - 1 and should be treated as reserved (see section 11.1 for details). note: refer to the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register table 16-1. uhci controller pci register address map (usb ? d29:f0/f1/f2/f3) offset mnemonic register name function 0 default function 1 default function 2 default function 3 default type 00?01h vid vendor identification 8086h 8086h 8086h 8086h ro 02?03h did device identification 2658h 2659h 265ah 265bh ro 04?05h pcicmd pci command 0000h 0000h 0000h 0000h r/w, ro 06?07h pcists pci status 0280h 0280h 0280h 0280h r/wc, ro 08h rid revision identification see register description. see register description. see register description. see register description. ro 09h pi programming interface 00h 00h 00h 00h ro 0ah scc sub class code 03h 03h 03h 03h ro 0bh bcc base class code 0ch 0ch 0ch 0ch ro 0dh mlt master latency timer 00h 00h 00h 00h ro 0eh headtyp header type 80h 00h 00h 00h ro 20?23h base base address 00000001h 00000001h 00000001h 00000001h r/w, ro 2c?2dh svid subsystem vendor identification 0000h 0000h 0000h 0000h r/wo 2e?2fh sid subsystem identification 0000h 0000h 0000h 0000h r/wo 3ch int_ln interrupt line 00h 00h 00h 00h r/w 3dh int_pn interrupt pin see register description. see register description. see register description. see register description. ro 60h usb_relnum serial bus release number 10h 10h 10h 10h ro c0?c1h usb_legkey usb legacy keyboard/ mouse control 2000h 2000h 2000h 2000h r/w, ro r/wc c4h usb_res usb resume enable 00h 00h 00h 00h r/w c8h cwp core well policy 00h 00h 00h 00h r/w
568 intel ? 631xesb/632xesb i/o controller hub datasheet uhci controllers registers 16.1.1 vid ? vendor identification register (usb ? d29:f0/f1/ f2/f3) address offset: 00?01h attribute: ro default value: 8086h size: 16 bits 16.1.2 did ? device identification register (usb ? d29:f0/f1/ f2/f3) address offset: 02?03h attribute: ro default value: uhci #1 = 2688h size: 16 bits uhci #2 = 2689h uhci #3 = 268ah uhci #4 = 268bh 16.1.3 pcicmd ? pci command register (usb ? d29:f0/f1/f2/ f3) address offset: 04?05h attribute: r/w, ro default value: 0000h size: 16 bits bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel bit description 15:0 device id ? ro. this is a 16-bit value assigned to the intel ? 631xesb/632xesb i/o controller hub usb host controllers bit description 15:11 reserved 10 interrupt disable ? r/w. 0 = enable. the function is able to generate its interrupt to the interrupt controller. 1 = disable. the function is not capable of generating interrupts. note: the corresponding interrupt status bit is not affected by the interrupt enable. 9 fast back to back enable (fbe) ? ro. hardwired to 0. 8 serr# enable ? ro. reserved as 0. 7 wait cycle control (wcc) ? ro. hardwired to 0. 6 parity error response (per) ? ro. hardwired to 0. 5 vga palette snoop (vps) ? ro. hardwired to 0. 4 postable memory write enable (pmwe) ? ro. hardwired to 0. 3 special cycle enable (sce) ? ro. hardwired to 0. 2 bus master enable (bme) ? r/w. 0 = disable 1 = enable. act as a master on the pci bus for usb transfers. 1 memory space enable (mse) ? ro. hardwired to 0. 0 i/o space enable (iose) ? r/w. this bit controls access to the i/o space registers. 0 = disable 1 = enable accesses to the usb i/o registers. the base address register for usb should be programmed before this bit is set.
intel ? 631xesb/632xesb i/o controller hub datasheet 569 uhci controllers registers 16.1.4 pcists ? pci status register (usb ? d29:f0/f1/f2/f3) address offset: 06?07h attribute: r/wc, ro default value: 0280h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. 16.1.5 rid ? revision identification register (usb ? d29:f0/f1/ f2/f3) offset address: 08h attribute: ro default value: see bit description size: 8 bits bit description 15 dpe ? detected parity error (dpe) ? r/wc. 0 = no parity error detected. 1 = set when a data parity error data parity error is detected on writes to the uhci register space or on read completions returned to the host controller. 14 reserved as 0b. read only. 13 received master abort (rma) ? r/wc. 0 = no master abort generated by usb. 1 = usb, as a master, generated a master abort. 12 reserved. always read as 0. 11 signaled target abort (sta) ? r/wc. 0 = intel ? 631xesb/632xesb i/o controller hub did not terminate transaction for usb function with a target abort. 1 = usb function is targeted with a transaction that the intel ? 631xesb/632xesb i/o controller hub terminates with a target abort. 10:9 devsel# timing status (dev_sts) ? ro. this 2-bit field defines the timing for devsel# assertion. these read only bits indicate the intel ? 631xesb/632xesb i/o controller hub's devsel# timing when performing a positive decode. intel ? 631xesb/632xesb i/o controller hub generates devsel# with medium timing for usb. 8 data parity error detected (dped) ? ro. hardwired to 0. 7 fast back to back capable (fb2bc) ? ro. hardwired to 1. 6 user definable features (udf) ? ro. hardwired to 0. 5 66 mhz capable ? ro. hardwired to 0. 4 capabilities list ? ro. hardwired to 0. 3 interrupt status ? ro. this bit reflects the state of this function?s interrupt at the input of the enable/disable logic. 0 = interrupt is deasserted. 1 = interrupt is asserted. the value reported in this bit is independen t of the value in the interrupt enable bit. 2:0 reserved bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register
570 intel ? 631xesb/632xesb i/o controller hub datasheet uhci controllers registers 16.1.6 pi ? programming interface register (usb ? d29:f0/f1/ f2/f3) address offset: 09h attribute: ro default value: 00h size: 8 bits 16.1.7 scc ? sub class code register (usb ? d29:f0/f1/f2/f3) address offset: 0ah attribute: ro default value: 03h size: 8 bits 16.1.8 bcc ? base class code register (usb ? d29:f0/f1/f2/f3) address offset: 0bh attribute: ro default value: 0ch size: 8 bits 16.1.9 mlt ? master latency timer register (usb ? d29:f0/f1/ f2/f3) address offset: 0dh attribute: ro default value: 00h size: 8 bits 16.1.10 headtyp ? header type register (usb ? d29:f0/f1/f2/ f3) address offset: 0eh attribute: ro default value: fn 0: 80h size: 8 bits fn 1: 00h fn 2: 00h fn 3: 00h for functions 1, 2, and 3, this register is hardwired to 00h. for function 0, bit 7 is determined by the values in the usb function disable bits (11:8 of the function disable register chipset config registers:offset 3418h). bit description 7:0 programming interface ? ro. 00h = no specific register level programming interface defined. bit description 7:0 sub class code (scc) ? ro. 03h = usb host controller. bit description 7:0 base class code (bcc) ? ro. 0ch = serial bus controller. bit description 7:0 master latency timer (mlt) ? ro. the usb controller is implemented internal to the intel ? 631xesb/632xesb i/o controller hub and not arbitrated as a pci device. therefore the device does not require a master latency timer.
intel ? 631xesb/632xesb i/o controller hub datasheet 571 uhci controllers registers 16.1.11 base ? base address register (usb ? d29:f0/f1/f2/f3) address offset: 20?23h attribute: r/w, ro default value: 00000001h size: 32 bits 16.1.12 svid ? subsystem vendor identification register (usb ? d29:f0/f1/f2/f3) address offset: 2ch?2dh attribute: r/wo default value: 0000h size: 16 bits lockable: no power well: core bit description 7 multi-function device ? ro. 0 = single-function device. 1 = multi-function device. since the upper functions in this device can be indi vidually hidden, this bit is based on the function- disable bits in device 31:f0:f2h as follows: d29:f7_disable d29:f3_disable d29:f2_dis able d29:f1_disable multi-function bit (bit 15) (bit 11) (bit 10) (bit 9) 0 x x x 1 x 0 x x 1 x x 0 x 1 x x x 0 1 1 1 1 1 0 6:0 configuration layout. hardwired to 00h, which indicates the standard pci configuration layout. bit description 31:16 reserved 15:5 base address ? r/w. bits [15:5] correspond to i/o address signals ad [15:5], respectively. this gives 32 bytes of relocatable i/o space. 4:1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 to indicate that the base address field in this register maps to i/o space. bit description 15:0 subsystem vendor id (svid) ? r/wo. bios sets the value in this register to identify the subsystem vendor id. the usb_svid register, in combination with the usb subsystem id register, enables the operating system to distinguish each subsystem from the others. note: the software can write to this register only once per core well reset. writes should be done as a single 16-bit cycle.
572 intel ? 631xesb/632xesb i/o controller hub datasheet uhci controllers registers 16.1.13 sid ? subsystem identification register (usb ? d29:f0/ f1/f2/f3) address offset: 2eh?2fh attribute: r/wo default value: 0000h size: 16 bits lockable: no power well: core 16.1.14 int_ln ? interrupt line register (usb ? d29:f0/f1/f2/ f3) address offset: 3ch attribute: r/w default value: 00h size: 8 bits 16.1.15 int_pn ? interrupt pin register (usb ? d29:f0/f1/f2/ f3) address offset: 3dh attribute: ro default value: function 0: see description size: 8 bits function 1: see description function 2: see description function 3: see description 16.1.16 usb_relnum ? serial bus release number register usb ? d29:f0/f1/f2/f3) address offset: 60h attribute: ro default value: 10h size: 8 bits bit description 15:0 subsystem id (sid) ? r/wo. bios sets the value in this register to identify the subsystem id. the sid register, in combination with the svid register (d29:f0/f1/f2/f3:2c), enables the operating system to distinguish each subsystem from other(s). the value read in this register is the same as what was written to the ide_sid register. note: the software can write to this register only once per core well reset. writes should be done as a single 16-bit cycle. bit description 7:0 interrupt line (int_ln) ? ro. this data is not used by the intel ? 631xesb/632xesb i/o controller hub. it is to communicate to software the interrupt line that the interrupt pin is connected to. bit description 7:0 interrupt line (int_ln) ? ro. this value tells the software which interrupt pin each usb host controller uses. the upper 4 bits are hardwired to 0000b; the lower 4 bits are determine by the interrupt pin default values that are programmed in the memory-mapped configuration space as follows: function 0 d29ip.u0p (chipset config registers:offset 3108:bits 3:0) function 1 d29ip.u1p (chipset config registers:offset 3108:bits 7:4) function 2 d29ip.u2p (chipset config registers:offset 3108:bits 11:8) function 3 d29ip.u3p (chipset config registers:offset 3108:bits 15:12) note: this does not determine the mapping to the pirq pins. bit description 7:0 serial bus release number ? ro. 10h = usb controller is compliant with the usb specification, release 1.0.
intel ? 631xesb/632xesb i/o controller hub datasheet 573 uhci controllers registers 16.1.17 usb_legkey ? usb lega cy keyboard/mouse control register (usb ? d29:f0/f1/f2/f3) address offset: c0?c1h attribute: r/w, r/wc, ro default value: 2000h size: 16 bits this register is implemented separately in each of the usb uhci functions. however, the enable and status bits for the trapping logic are or?d and shared, respectively, since their functionality is not specific to any one host controller. bit description 15 smi caused by end of pass-through (smibyendps) ? r/wc. this bit indicates if the event occurred. note that even if the corresponding enable bit is not set in bit 7, then this bit will still be active. it is up to the smm code to use the enable bit to determine the exact cause of the smi#. 0 = software clears this bit by writing a 1 to the bit location in any of the controllers. 1 = event occurred 14 reserved 13 pci interrupt enable (usbpirqen) ? r/w. this bit is used to prevent the usb controller from generating an interrupt due to transactions on its ports. note that, when disabled, it will probably be configured to generate an smi using bit 4 of this register. default to 1 for compatibility with older usb software. 0 = disable 1 = enable 12 smi caused by usb interrupt (smibyusb) ? ro. this bit indicates if an interrupt event occurred from this controller. the interrupt from the controller is taken before the enable in bit 13 has any effect to create this read-only bit. note that even if the corresponding enable bit is not set in bit 4, this bit may still be active. it is up to the smm code to use the enable bit to determine the exact cause of the smi#. 0 = software should clear the interrupts via the usb controllers. writing a 1 to this bit will have no effect. 1 = event occurred. 11 smi caused by port 64 write (trapby64w) ? r/wc. this bit indicates if the event occurred. note that even if the corresponding enable bit is not set in bit 3, this bit will still be active. it is up to the smm code to use the enable bit to determin e the exact cause of the smi#. note that the a20gate pass-through logic allows specific port 64h writes to complete without setting this bit. 0 = software clears this bit by writing a 1 to the bit location in any of the controllers. 1 = event occurred. 10 smi caused by port 64 read (trapby64r) ? r/wc. this bit indicates if the event occurred. note that even if the corresponding enable bit is not set in bit 2, this bit will still be active. it is up to the smm code to use the enable bit to determine the exact cause of the smi#. 0 = software clears this bit by writing a 1 to the bit location in any of the controllers. 1 = event occurred. 9 smi caused by port 60 write (trapby60w) ? r/wc. this bit indicates if the event occurred. note that even if the corresponding enable bit is not set in bit 1, this bit will still be active. it is up to the smm code to use the enable bit to determin e the exact cause of the smi#. note that the a20gate pass-through logic allows specific port 64h writes to complete without setting this bit. 0 = software clears this bit by writing a 1 to the bit location in any of the controllers. 1 = event occurred. 8 smi caused by port 60 read (trapby60r) ? r/wc. this bit indicates if the event occurred. note that even if the corresponding enable bit is not set in the bit 0, then this bit will still be active. it is up to the smm code to use the enable bit to determine the exact cause of the smi#. 0 = software clears this bit by writing a 1 to the bit location in any of the controllers. 1 = event occurred. 7 smi at end of pass-through enable (smiatendps) ? r/w. this bit enables smi at the end of a pass-through. this can occur if an smi is generated in the middle of a pass-through, and needs to be serviced later. 0 = disable 1 = enable 6 pass through state (pstate) ? ro. 0 = if software needs to reset this bit, it should set bit 5 in all of the host controllers to 0. 1 = indicates that the state machine is in the middle of an a20gate pass-through sequence.
574 intel ? 631xesb/632xesb i/o controller hub datasheet uhci controllers registers 16.1.18 usb_res ? usb resume enable register (usb ? d29:f0/ f1/f2/f3) address offset: c4h attribute: r/w default value: 00h size: 8 bits 16.1.19 cwp ? core well policy register (usb ? d29:f0/f1/f2/ f3) address offset: c8h attribute: r/w default value: 00h size: 8 bits 5 a20gate pass-through enable (a20passen) ? r/w. 0 = disable. 1 = enable. allows a20gate sequence pass-through function. a specific cycle sequence involving writes to port 60h and 64h does not result in the setting of the smi status bits. 4 smi on usb irq enable (usbsmien) ? r/w. 0 = disable 1 = enable. usb interrupt will cause an smi event. 3 smi on port 64 writes enable (64wen) ? r/w. 0 = disable 1 = enable. a 1 in bit 11 will cause an smi event. 2 smi on port 64 reads enable (64ren) ? r/w. 0 = disable 1 = enable. a 1 in bit 10 will cause an smi event. 1 smi on port 60 writes enable (60wen) ? r/w. 0 = disable 1 = enable. a 1 in bit 9 will cause an smi event. 0 smi on port 60 reads enable (60ren) ? r/w. 0 = disable 1 = enable. a 1 in bit 8 will cause an smi event. bit description bit description 7:2 reserved 1 port1en ? r/w. enable port 1 of the usb controller to respond to wakeup events. 0 = the usb controller will not look at this port for a wakeup event. 1 = the usb controller will monitor this port for remote wakeup and connect/disconnect events. 0 port0en ? r/w. enable port 0 of the usb controller to respond to wakeup events. 0 = the usb controller will not look at this port for a wakeup event. 1 = the usb controller will monitor this port for remote wakeup and connect/disconnect events. bit description 7:1 reserved 0 static bus master status policy enable (sbmspe) ? r/w. 0 = the uhci host controller dynamically sets the bus master status bit (power management 1 status register,[pmbase+00h], bit 4) based on the memory accesses that are scheduled. the default setting provides a more accurate indication of snoopable memory accesses in order to help with software-invoked entry to c3 and c4 power states 1 = the uhci host controller statically forces the bus master status bit in power management space to 1 whenever the hchalted bit (usb status register, base+02h, bit 5) is cleared. note: the pci power management registers are enabled in the pci device 31: function 0 space (pm_io_en), and can be moved to any i/o location (128-byte aligned).
intel ? 631xesb/632xesb i/o controller hub datasheet 575 uhci controllers registers 16.2 usb i/o registers some of the read/write register bits that deal with changing the state of the usb hub ports function such that on read back they reflect the current state of the port, and not necessarily the state of the last write to the register. this allows the software to poll the state of the port and wait until it is in the proper state before proceeding. a host controller reset, global reset, or port reset will immediately terminate a transfer on the affected ports and disable the port. this affects the usbcmd register, bit 4 and the portsc registers, bits [12,6,2]. see individual bit descriptions for more detail. note: these registers are word writable only. byte writes to these registers have unpredictable effects. 16.2.1 usbcmd ? usb command register i/o offset: base + (00?01h) attribute: r/w default value: 0000h size: 16 bits the command register indicates the command to be executed by the serial bus host controller. writing to the register causes a command to be executed. the table following the bit description provides additional information on the operation of the run/stop and debug bits. table 16-2. usb i/o registers base + offset mnemonic register name default type 00?01 usbcmd usb command 0000h r/w 02?03 usbsts usb status 0020h r/wc 04?05 usbintr usb interrupt enable 0000h r/w 06?07 frnum frame number 0000h r/w (see note 1) 08?0b frbaseadd frame list base address undefined r/w 0c sofmod start of frame modify 40h r/w 0d?0f ? reserved ? ? 10?11 portsc0 port 0 status/control 0080h r/wc, ro, r/w (see note 1) 12?13 portsc1 port 1 status/control 0080h r/wc, ro, r/w (see note 1) bit description 15:7 reserved 8 loop back test mode ? r/w. 0 = disable loop back test mode. 1 = in loop back test mode. when both ports are connected together, a write to one port will be seen on the other port and the data will be stored in i/o offset 18h. 7 max packet (maxp) ? r/w. this bit selects the maximum packet size that can be used for full speed bandwidth reclamation at the end of a frame. this value is used by the host controller to determine whether it should initiate another transaction based on the time remaining in the sof counter. use of reclamation packets larger than the programmed size will cause a babble error if executed during the critical window at frame end. the babble error results in the offending endpoint being stalled. software is responsible for ensuring that any packet which could be executed under bandwidth reclamation be within this size limit. 0 = 32 bytes 1 = 64 bytes 6 configure flag (cf) ? r/w. this bit has no effect on the hardware. it is provided only as a semaphore service for software. 0 = indicates that software has not completed host controller configuration. 1 = hcd software sets this bit as the last action in its process of configuring the host controller.
576 intel ? 631xesb/632xesb i/o controller hub datasheet uhci controllers registers 5 software debug (swdbg) ? r/w. the swdbg bit must only be manipulated when the controller is in the stopped state. this can be determined by checking the hchalted bit in the usbsts register. 0 = normal mode. 1 = debug mode. in sw debug mode, the host controller clears the run/stop bit after the completion of each usb transaction. the next transaction is executed when software sets the run/stop bit back to 1. 4 force global resume (fgr) ? r/w. 0 = software resets this bit to 0 after 20 ms has elapsed to stop sending the global resume signal. at that time all usb devices should be ready for bus activity. the 1 to 0 transition causes the port to send a low speed eop signal. this bit will remain a 1 until the eop has completed. 1 = host controller sends the global resume signal on the usb, and sets this bit to 1 when a resume event (connect, disconnect, or k-state) is detected while in global suspend mode. 3 enter global suspend mode (egsm) ? r/w. 0 = software resets this bit to 0 to come out of global suspend mode. software writes this bit to 0 at the same time that force global resume (bit 4) is written to 0 or after writing bit 4 to 0. 1 = host controller enters the global suspend mode. no usb transactions occur during this time. the host controller is able to receive resume signals from usb and interrupt the system. software must ensure that the run/stop bit (bit 0) is cleared prior to setting this bit. 2 global reset (greset) ? r/w. 0 = this bit is reset by the software after a minimum of 10 ms has elapsed as specified in section 7 of the usb specification. 1 = global reset. the host controller sends the global reset signal on the usb and then resets all its logic, including the internal hub registers. the hub registers are reset to their power on state. chip hardware reset has the same effect as global reset (bit 2), except that the host controller does not send the global reset on usb. 1 host controller reset (hcreset) ? r/w. the effects of hcreset on hub registers are slightly different from chip hardware reset and global usb reset. the hcreset affects bits [8,3:0] of the port status and control register (portsc) of each port. hcreset resets the state machines of the host controller including the connect/disconnect state machine (one for each port). when the connect/disconnect state machine is reset, the output that signals connect/disconnect are negated to 0, effectively signaling a disconnect, even if a device is attached to the port. this virtual disconnect causes the port to be disabled. this disconnect and disabling of the port causes bit 1 (connect status change) and bit 3 (port enable/disable change) of the portsc (d29:f0/f1/f2/ f3:base + 10h) to get set. the disconnect also causes bit 8 of portsc to reset. about 64 bit times after hcreset goes to 0, the connect and low-speed detect will take place, and bits 0 and 8 of the portsc will change accordingly. 0 = reset by the host controller when the reset process is complete. 1 = reset. when this bit is set, the host controller module resets its internal timers, counters, state machines, and so forth, to their initial value. any transaction currently in progress on usb is immediately terminated. 0 run/stop (rs) ? r/w. when set to 1, the intel ? 631xesb/632xesb i/o controller hub proceeds with execution of the schedule. it continues execution as long as this bit is set. when this bit is cleared, it completes the current transaction on the usb and then halts. the hc halted bit in the status register indicates when the host controller has finished the transaction and has entered the stopped state. the host controller clears this bit when the following fatal errors occur: consistency check failure, pci bus errors. 0 = stop 1 = run note: this bit should only be cleared if there are no active transaction descriptors in the executable schedule or software will reset the host controller pr ior to setting this bit again. bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 577 uhci controllers registers when the usb host controller is in software debug mode (usbcmd register bit 5=1), the single stepping software debug operation is as follows: to enter software debug mode: 1. hcd puts host controller in stop state by setting the run/stop bit to 0. 2. hcd puts host controller in debug mode by setting the swdbg bit to 1. 3. hcd sets up the correct command list and start of frame value for starting point in the frame list single step loop. 4. hcd sets run/stop bit to 1. 5. host controller executes next active td, sets run/stop bit to 0, and stops. 6. hcd reads the usbcmd register to check if the single step execution is completed (hchalted=1). 7. hcd checks results of td execution. go to step 4 to execute next td or step 8 to end software debug mode. 8. hcd ends software debug mode by setting swdbg bit to 0. 9. hcd sets up normal command list and frame list table. 10. hcd sets run/stop bit to 1 to resume normal schedule execution. in software debug mode, when the run/stop bit is set, the host controller starts. when a valid td is found, the run/stop bit is reset. when the td is finished, the hchalted bit in the usbsts register (bit 5) is set. the sw debug mode skips over inactive tds and only halts after an active td has been executed. when the last active td in a frame has been executed, the host controller waits until the next sof is sent and then fetches the first td of the next frame before halting. this hchalted bit can also be used outside of software debug mode to indicate when the host controller has detected the run/stop bit and has completed the current transaction. outside of the software debug mode, setting the run/stop bit to 0 always table 16-3. run/stop, debug bit interaction swdbg (bit 5), run/stop (bit 0) operation swdbg (bit 5) run/stop (bit 0) description 0 0 if executing a command, the host controller completes the command and then stops. the 1.0 ms frame counter is reset and command list execution resumes from start of frame using the frame list pointer selected by the current value in the frnum register. (while run/stop=0, the frnum register (d29:f0/f1/f2/ f3:base + 06h) can be reprogrammed). 0 1 execution of the command list resumes from start of frame using the frame list pointer selected by the current value in the frnum register. the host controller remains running until the run/stop bit is cleared (by software or hardware). 1 0 if executing a command, the host controller completes the command and then stops and the 1.0 ms frame counter is frozen at its current value. all status are preserved. the host controller begins execution of the command list from where it left off when the run/stop bit is set. 1 1 execution of the command list resumes from where the previous execution stopped. the run/stop bit is set to 0 by the host controller when a td is being fetched. this causes the host controller to stop again after the execution of the td (single step). when the host controller has completed execution, the hc halted bit in the status register is set.
578 intel ? 631xesb/632xesb i/o controller hub datasheet uhci controllers registers resets the sof counter so that when the run/stop bit is set the host controller starts over again from the frame list location pointed to by the frame list index (see frnum register description) rather than continuing where it stopped. 16.2.2 usbsts ? usb status register i/o offset: base + (02?03h) attribute: r/wc default value: 0020h size: 16 bits this register indicates pending interrupts and various states of the host controller. the status resulting from a transaction on the serial bus is not indicated in this register. 16.2.3 usbintr ? usb interrupt enable register i/o offset: base + (04?05h) attribute: r/w default value: 0000h size: 16 bits this register enables and disables reporting of the corresponding interrupt to the software. when a bit is set and the corresponding interrupt is active, an interrupt is generated to the host. fatal errors (host controller processor error, (d29:f0/f1/f2/ f3:base + 02h, bit 4, usbsts register) cannot be disabled by the host controller. interrupt sources that are disabled in this register still appear in the status register to allow the software to poll for events. bit description 15:6 reserved 5 hchalted ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = the host controller has stopped executing as a result of the run/stop bit being set to 0, either by software or by the host controller hardware (debug mode or an internal error). default. 4 host controller process error ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = the host controller has detected a fatal error. this indicates that the host controller suffered a consistency check failure while processing a transfer descriptor. an example of a consistency check failure would be finding an illegal pid field while processing the packet header portion of the td. when this error occurs, the host controller clears the run/stop bit in the command register (d29:f0/f1/f2/f3:base + 00h, bit 0) to prevent further schedule execution. a hardware interrupt is generated to the system. 3 host system error ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = a serious error occurred during a host system access involving the host controller module. in a pci system, conditions that set this bit to 1 include pci parity error, pci master abort, and pci target abort. when this error occurs, the host controller clears the run/stop bit in the command register to prevent further execution of the scheduled tds. a hardware interrupt is generated to the system. 2 resume detect (rsm_det) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = the host controller received a ?resume? signal from a usb device. this is only valid if the host controller is in a global suspend state (command register, d29:f0/f1/f2/f3:base + 00h, bit 3 = 1). 1 usb error interrupt ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = completion of a usb transaction resulted in an error condition (for example, error counter underflow). if the td on which the error interrupt occurred also had its ioc bit (d29:f0/f1/f2/ f3:base + 04h, bit 2) set, both this bit and bit 0 are set. 0 usb interrupt (usbint) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = the host controller sets this bit when the cause of an interrupt is a completion of a usb transaction whose transfer descriptor had its ioc bit set. also set when a short packet is detected (actual length field in td is less than maximum length field in td), and short packet detection is enabled in that td.
intel ? 631xesb/632xesb i/o controller hub datasheet 579 uhci controllers registers 16.2.4 frnum ? frame number register i/o offset: base + (06?07h) attribute: r/w (writes must be word writes) default value: 0000h size: 16 bits bits [10:0] of this register contain the current frame number that is included in the frame sof packet. this register reflects the count value of the internal frame number counter. bits [9:0] are used to select a particular entry in the frame list during scheduled execution. this register is updated at the end of each frame time. this register must be written as a word. byte writes are not supported. this register cannot be written unless the host controller is in the stopped state as indicated by the hchalted bit (d29:f0/f1/f2/f3:base + 02h, bit 5). a write to this register while the run/stop bit is set (d29:f0/f1/f2/f3:base + 00h, bit 0) is ignored. 16.2.5 frbaseadd ? frame list base address register i/o offset: base + (08?0bh) attribute: r/w default value: undefined size: 32 bits this 32-bit register contains the beginning address of the frame list in the system memory. hcd loads this register prior to starting the schedule execution by the host controller. when written, only the upper 20 bits are used. the lower 12 bits are written as 0?s (4-kb alignment). the contents of this register are combined with the frame number counter to enable the host controller to step through the frame list in sequence. the two least significant bits are always 00. this requires dword alignment for all list entries. this configuration supports 1024 frame list entries. bit description 15:5 reserved 4 scratchpad (sp) ? r/w. 3 short packet interrupt enable ? r/w. 0 = disabled. 1 = enabled. 2 interrupt on complete enable (ioc) ? r/w. 0 = disabled. 1 = enabled. 1 resume interrupt enable ? r/w. 0 = disabled. 1 = enabled. 0 timeout/crc interrupt enable ? r/w. 0 = disabled. 1 = enabled. bit description 15:11 reserved 10:0 frame list current index/frame number ? r/w. this field provides the frame number in the sof frame. the value in this register increments at the end of each time frame (approximately every 1 ms). in addition, bits [9:0] are used for the frame list current index and correspond to memory address signals [11:2].
580 intel ? 631xesb/632xesb i/o controller hub datasheet uhci controllers registers 16.2.6 sofmod ? start of frame modify register i/o offset: base + (0ch) attribute: r/w default value: 40h size: 8 bits this 1-byte register is used to modify the value used in the generation of sof timing on the usb. only the 7 least significant bits are used. when a new value is written into these 7 bits, the sof timing of the next frame will be adjusted. this feature can be used to adjust out any offset from the clock source that generates the clock that drives the sof counter. this register can also be used to maintain real time synchronization with the rest of the system so that all devices have the same sense of real time. using this register, the frame length can be adjusted across the full range required by the usb specification. its initial programmed value is system dependent based on the accuracy of hardware usb clock and is initialized by system bios. it may be reprogrammed by usb system software at any time. its value will take effect from the beginning of the next frame. this register is reset upon a host controller reset or global reset. software must maintain a copy of its value for reprogramming if necessary. 16.2.7 portsc[0,1] ? port status and control register i/o offset: port 0/2/4/6: base + (10?11h)attribute: r/wc, ro, port 1/3/5/7: base + (12?13h) r/w (word writes only) default value: 0080h size: 16 bits note: for function 0, this applies to intel ? 631xesb/632xesb i/o controller hub usb ports 0 and 1; for function 1, this applies to intel ? 631xesb/632xesb i/o controller hub usb ports 2 and 3; for function 2, this applies to intel ? 631xesb/632xesb i/o controller hub usb ports 4 and 5; and for function 3, this applies to intel ? 631xesb/632xesb i/ o controller hub usb ports 6 and 7. after a power-up reset, global reset, or host controller reset, the initial conditions of a port are: no device connected, port disabled, and the bus line status is 00 (single- ended zero). bit description 31:12 base address ? r/w. these bits correspond to memory address signals [31:12], respectively. 11:0 reserved bit description 7 reserved 6:0 sof timing value ? r/w. guidelines for the modification of frame time are contained in section 7 of the usb specification. the sof cycle time (number of sof counter clock periods to generate a sof frame length) is equal to 11936 + value in this field. the default value is decimal 64 which gives a sof cycle time of 12000. for a 12 mhz sof counter clock input, this produces a 1 ms frame period. the following table indicates what sof timing value to program into this field for a certain frame period. frame length (# 12 mhz clocks)sof reg. value (decimal) (decimal) 11936 0 11937 1 .. .. 11999 63 12000 64 12001 65 .. .. 12062 126 12063 127
intel ? 631xesb/632xesb i/o controller hub datasheet 581 uhci controllers registers bit description 15:13 reserved ? ro. 12 suspend ? r/w . this bit should not be written to a 1 if global suspend is active (bit 3=1 in the usbcmd register). bit 2 and bit 12 of this register define the hub states as follows: bits [12,2] hub state x0 disable 01 enable 11 suspend when in suspend state, downstream propagation of data is blocked on this port, except for single-ended 0 resets (global reset and port reset). the blocking occurs at the end of the current transaction, if a transaction was in progress when this bit was written to 1. in the suspend state, the port is sensitive to resume detection. note that the bit status does not change until the port is suspended and that there may be a delay in suspending a port if there is a transaction currently in progress on the usb. 1 = port in suspend state. 0 = port not in suspend state. note: normally, if a transaction is in progress when th is bit is set, the port will be suspended when the current transaction completes. however, in the case of a specific error condition (out transaction with babble), the intel ? 631xesb/632xesb i/o controller hub may issue a start-of-frame, and then suspend the port. 11 overcurrent indicator ? r/wc. set by hardware. 0 = software clears this bit by writing a 1 to it. 1 = overcurrent pin has gone from inactive to active on this port. 10 overcurrent active ? ro. this bit is set and cleared by hardware. 0 = indicates that the overcurrent pin is inactive (high). 1 = indicates that the overcurrent pin is active (low). 9 port reset ? r/w . 0 = port is not in reset. 1 = port is in reset. when set, the port is disabled and sends the usb reset signaling. 8 low speed device attached (ls) ? ro . 0 = full speed device is attached. 1 = low speed device is attached to this port. 7 reserved ? ro. always read as 1. 6 resume detect (rsm_det) ? r/w. software sets this bit to a 1 to drive resume signaling. the host controller sets this bit to a 1 if a j-to-k transition is detected for at least 32 microseconds while the port is in the suspend state. the intel ? 631xesb/632xesb i/o controller hub will then reflect the k-state back onto the bus as long as the bit re mains a 1, and the port is still in the suspend state (bit 12,2 are ?11?). writing a 0 (from 1) causes the port to send a low speed eop. this bit will remain a 1 until the eop has completed. 0 = no resume (k-state) detected/driven on port. 1 = resume detected/driven on port. 5:4 line status ? ro . these bits reflect the d+ (bit 4) and d? (bit 5) signals lines? logical levels. these bits are used for fault detect and recovery as well as for usb diagnostics. this field is updated at eof2 time (see section 11 of the usb specification). 3 port enable/disable change ? r/wc . for the root hub, this bit gets set only when a port is disabled due to disconnect on that port or due to the appropriate conditions existing at the eof2 point (see section 11 of the usb specification). 0 = no change. software clears this bit by writing a 1 to the bit location. 1 = port enabled/disabled status has changed.
582 intel ? 631xesb/632xesb i/o controller hub datasheet uhci controllers registers 2 port enabled/disabled (port_en) ? r/w . ports can be enabled by host software only. ports can be disabled by either a fault condition (disconnect event or other fault condition) or by host software. note that the bit status does not change until the port state actually changes and that there may be a delay in disabling or enabling a port if there is a transaction currently in progress on the usb. 0 = disable 1 = enable 1 connect status change ? r/wc . this bit indicates that a change has occurred in the port?s current connect status (see bit 0). the hub device sets this bit for any changes to the port device connect status, even if system software has not cleared a connect status change. if, for example, the insertion status changes twice before system software has cleared the changed condition, hub hardware will be setting? an already-set bit (tha t is, the bit will remain set). however, the hub transfers the change bit only once when the host controller requests a data transfer to the status change endpoint. system software is responsible for determining state change history in such a case. 0 = no change. software clears this bit by writing a 1 to it. 1 = change in current connect status. 0 current connect status ? ro . this value reflects the current state of the port, and may not correspond directly to the event that caused the connect status change bit (bit 1) to be set. 0 = no device is present. 1 = device is present on port. bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 583 ehci controller registers (d29:f7) 17 ehci controller registers (d29:f7) 17.1 usb ehci configuration registers (usb ehci ? d29:f7) note: register address locations that are not shown in ta bl e 1 7 - 1 should be treated as reserved (see section 11.1 for details). note: all configuration registers in this section are in the core well and reset by a core well reset and the d3-to-d0 warm reset, except as noted. table 17-1. usb ehci pci register address map (usb ehci ? d29:f7) (sheet 1 of 2) offset mnemonic register name default value type 00?01h vid vendor identification 8086h ro 02?03h did device identification see register description ro 04?05h pcicmd pci command 0000h r/w, ro 06?07h pcists pci status 0290h r/w, ro 08h rid revision identification see register description ro 09h pi programming interface 20h ro 0ah scc sub class code 03h ro 0bh bcc base class code 0ch ro 0dh pmlt primary master latency timer 00h ro 10?13h mem_base memory base address 00000000h r/w, ro 2c?2dh svid usb ehci subsystem vendor identification xxxxh r/w (special) 2e?2fh sid usb ehci subsystem identification xxxxh r/w (special) 34h cap_ptr capabilities pointer 50h ro 3ch int_ln interrupt line 00h r/w 3dh int_pn interrupt pin see register description ro 50h pwr_capid pci power management capability id 01h ro 51h nxt_ptr1 next item pointer 58h r/w (special) 52?53h pwr_cap power management capabilities c9c2h r/w (special) 54?55h pwr_cntl_sts power management control/status 0000h r/w, r/wc, ro 58h debug_capid debug port capability id 0ah ro 59h nxt_ptr2 next item pointer #2 00h ro 5a?5bh debug_base debug port base offset 20a0h ro 60h usb_relnum usb release number 20h ro 61h fl_adj frame length adjustment 20h r/w 62?63h pwake_cap port wake capabilities 01ffh r/w 64?67h ? reserved ? ?
584 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 17.1.1 vid ? vendor identification register (usb ehci ? d29:f7) offset address: 00?01h attribute: ro default value: 8086h size: 16 bits 17.1.2 did ? device identification register (usb ehci ? d29:f7) offset address: 02?03h attribute: ro default value: see bits description size: 16 bits 17.1.3 pcicmd ? pci command register (usb ehci ? d29:f7) address offset: 04?05h attribute: r/w, ro default value: 0000h size: 16 bits 68?6bh leg_ext_cap usb ehci legacy support extended capability 00000001h r/w, ro 6c?6fh leg_ext_cs usb ehci legacy extended support control/status 00000000h r/w, r/wc, ro 70?73h special_smi intel specific usb 2.0 smi 00000000h r/w, r/wc 74?7fh ? reserved ? ? 80h access_cntl access control 00h r/w table 17-1. usb ehci pci register address map (usb ehci ? d29:f7) (sheet 2 of 2) offset mnemonic register name default value type bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel. bit description 15:0 device id ? ro. this is a 16-bit value assigned to the intel ? 631xesb/632xesb i/o controller hub usb ehci controller. default value: 268ch-268fh, varies by sku, and lower 2 bits are determined by fuses. refer to ta b l e 2 - 3 3 . bit description 15:11 reserved 10 interrupt disable ? r/w. 0 = the function is capable of generating interrupts. 1 = the function can not generate its interrupt to the interrupt controller. note that the corresponding interrupt status bit (d29:f7:06h, bit 3) is not affected by the interrupt enable. 9 fast back to back enable (fbe) ? ro. hardwired to 0. 8 serr# enable (serr_en) ? r/w. 0 = disables ehc?s capability to generate an serr#. 1 = the enhanced host controller ( ehc) is capable of generating (internally) serr# when it receive a completion status other than ?successful? for one of its dma-initiated memory reads on esi (and subsequently on its internal interface). 7 wait cycle control (wcc) ? ro. hardwired to 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 585 ehci controller registers (d29:f7) 17.1.4 pcists ? pci status register (usb ehci ? d29:f7) address offset: 06?07h attribute: r/w, ro default value: 0290h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. 6 parity error response (per) ? ro. hardwired to 0. 5 vga palette snoop (vps) ? ro. hardwired to 0. 4 postable memory write enable (pmwe) ? ro. hardwired to 0. 3 special cycle enable (sce) ? ro. hardwired to 0. 2 bus master enable (bme) ? r/w. 0 = disables this functionality. 1 = enables the intel ? 631xesb/632xesb i/o controller hub to act as a master on the pci bus for usb transfers. 1 memory space enable (mse) ? r/w. this bit controls access to the usb 2.0 memory space registers. 0 = disables this functionality. 1 = enables accesses to the usb 2.0 registers. the base address register (d29:f7:10h) for usb 2.0 should be programmed before this bit is set. 0 i/o space enable (iose) ? ro. hardwired to 0. bit description bit description 15 detected parity error (dpe) ? ro. hardwired to 0. 14 signaled system error (sse) ? r/w. 0 = no serr# signaled. 1 = this bit is set when it signals serr# (internally). the ser_en bit (bit 8 of the command register) must be 1 for this bit to be set. 13 received master abort (rma) ? r/w. 0 = no master abort received by ehc on a memory access. 1 = this bit is set when ehc, as a master, receives a master abort status on a memory access. this is treated as a host error and halts the dma engines. this event can optionally generate an serr# by setting the serr# enable bit . 12 received target abort (rta) ? r/w. 0 = no target abort received by ehc on memory access. 1 = this bit is set when ehc, as a master, receives a target abort status on a memory access. this is treated as a host error and halts the dma engines. this event can optionally generate an serr# by setting the serr# enable bit (d29:f7:04h, bit 8). 11 signaled target abort (sta) ? ro. this bit is used to indicate when the ehci function responds to a cycle with a target abort. there is no reason for this to happen, so this bit will be hardwired to 0. 10:9 devsel# timing status (devt_sts) ? ro. this 2-bit field defines the timing for devsel# assertion. 8 master data parity error detected (dped) ? r/w. 0 = no data parity error detected on usb2.0 read completion packet. 1 = this bit is set when a data parity error is detected on a usb 2.0 read completion packet on the internal interface to the ehci host controller and bit 6 of the command register is set to 1. 7 fast back to back capable (fb2bc) ? ro. hardwired to 1. 6 user definable features (udf) ? ro. hardwired to 0. 5 66 mhz capable (66 mhz _cap) ? ro. hardwired to 0.
586 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 17.1.5 rid ? revision identification register (usb ehci ? d29:f7) offset address: 08h attribute: ro default value: see bit description size: 8 bits 17.1.6 pi ? programming interface register (usb ehci ? d29:f7) address offset: 09h attribute: ro default value: 20h size: 8 bits 17.1.7 scc ? sub class code register (usb ehci ? d29:f7) address offset: 0ah attribute: ro default value: 03h size: 8 bits 17.1.8 bcc ? base class code register (usb ehci ? d29:f7) address offset: 0bh attribute: ro default value: 0ch size: 8 bits 4 capabilities list (cap_list) ? ro. hardwired to 1 indicating that offset 34h contains a valid capabilities pointer. 3 interrupt status ? ro. this bit reflects the state of this function?s interrupt at the input of the enable/disable logic. 0 = this bit will be 0 when the interrupt is deasserted. 1 = this bit is a 1 when the interrupt is asserted. the value reported in this bit is independen t of the value in the interrupt enable bit. 2:0 reserved bit description bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register bit description 7:0 programming interface ? ro. a value of 20h indicates that this usb 2.0 host controller conforms to the ehci specification. bit description 7:0 sub class code (scc) ? ro. 03h = universal serial bus host controller. bit description 7:0 base class code (bcc) ? ro. 0ch = serial bus controller.
intel ? 631xesb/632xesb i/o controller hub datasheet 587 ehci controller registers (d29:f7) 17.1.9 pmlt ? primary master latency timer register (usb ehci ? d29:f7) address offset: 0dh attribute: ro default value: 00h size: 8 bits 17.1.10 mem_base ? memory base address register (usb ehci ? d29:f7) address offset: 10?13h attribute: r/w, ro default value: 00000000h size: 32 bits 17.1.11 svid ? usb ehci subsystem vendor id register (usb ehci ? d29:f7) address offset: 2c?2dh attribute: r/w (special) default value: xxxx hsize:16 bits reset: none 17.1.12 sid ? usb ehci subsystem id register (usb ehci ? d29:f7) address offset: 2e?2fh attribute: r/w (special) default value: xxxxh size: 16 bits reset: none bit description 7:0 master latency timer count (mltc) ? ro. hardwired to 00h. because the ehci controller is internally implemented with arbitration on an inte rface (and not pci), it does not need a master latency timer. bit description 31:10 base address ? r/w. bits [31:10] correspond to memory address signals [31:10], respectively. this gives 1-kb of locatable memory space aligned to 1-kb boundaries. 9:4 reserved 3 prefetchable ? ro. hardwired to 0 indicating that this range should not be prefetched. 2:1 type ? ro. hardwired to 00b indicating that th is range can be mapped anywhere within 32-bit address space. 0 resource type indicator (rte) ? ro. hardwired to 0 indicating that the base address field in this register maps to memory space. bit description 15:0 subsystem vendor id (svid) ? r/w (special). this register, in combination with the usb 2.0 subsystem id register, enables the operating system to distinguish each subsystem from the others. note: writes to this register are enabled when the wrt_rdonly bit (d29:f7:80h, bit 0) is set to 1. bit description 15:0 subsystem id (sid) ? r/w (special). bios sets the value in this register to identify the subsystem id. this register, in combination with the subsystem vendor id register, enables the operating system to distinguish each subsystem from other(s). note: writes to this register are enabled when the wrt_rdonly bit (d29:f7:80h, bit 0) is set to 1.
588 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 17.1.13 cap_ptr ? capabilities pointer register (usb ehci ? d29:f7) address offset: 34h attribute: ro default value: 50h size: 8 bits 17.1.14 int_ln ? interrupt line register (usb ehci ? d29:f7) address offset: 3ch attribute: r/w default value: 00h size: 8 bits 17.1.15 int_pn ? interrupt pin register (usb ehci ? d29:f7) address offset: 3dh attribute: ro default value: see description size: 8 bits 17.1.16 pwr_capid ? pci power management capability id register (usb ehci ? d29:f7) address offset: 50h attribute: ro default value: 01h size: 8 bits bit description 7:0 capabilities pointer (cap_ptr) ? ro. this register points to the starting offset of the usb 2.0 capabilities ranges. bit description 7:0 interrupt line (int_ln) ? r/w. this data is not used. it is used as a scratchpad register to communicate to software the interrupt line that the interrupt pin is connected to. bit description 7:0 interrupt pin ? ro. this reflects the value of d29ip.eip (chipset config registers:offset 3108:bits 31:28). note: bits 7:4 are always 0h bit description 7:0 power management capability id ? ro. a value of 01h indicates that this is a pci power management capabilities field.
intel ? 631xesb/632xesb i/o controller hub datasheet 589 ehci controller registers (d29:f7) 17.1.17 nxt_ptr1 ? next item pointer #1 register (usb ehci ? d29:f7) address offset: 51h attribute: r/w (special) default value: 58h size: 8 bits 17.1.18 pwr_cap ? power management capabilities register (usb ehci ? d29:f7) address offset: 52?53h attribute: r/w (special) default value: c9c2h size: 16 bits notes: 1. normally, this register is read-only to report capabilities to the power management software. to report different power management capabilities, depending on the system in which the intel ? 631xesb/632xesb i/o controller hub is used, bits 15:11 and 8:6 in this register are writable when the wrt_rdonly bit (d29:f7:80h, bit 0) is set. the value written to this register does not affect the hardware other than changing the value returned during a read. 2. reset: core well, but not d3-to-d0 warm reset. bit description 7:0 next item pointer 1 value ? r/w (special). this register defaults to 58h, which indicates that the next capability registers begin at configuration offset 58h. this register is writable when the wrt_rdonly bit (d29:f7:80h, bit 0) is set. this allows bios to effectively hide the debug port capability registers, if necessary. this register should only be written during system initialization before the plug-and-play software has enabled any master-initiated traffic. only values of 58h (debug port visible) and 00h (debug port invisible) are expected to be programmed in this register. note: register not reset by d3-to-d0 warm reset. bit description 15:11 pme support (pme_sup) ? r/w (special). this 5-bit field indicates the power states in which the function may assert pme#. the intel ? 631xesb/632xesb i/o controller hub ehc does not support the d1 or d2 states. for all other states, the intel ? 631xesb/632xesb i/o controller hub ehc is capable of generating pme#. software should never need to modify this field. 10 d2 support (d2_sup) ? r/w (special). 0 = d2 state is not supported 1 = d2 state is supported 9d1 support (d1_sup) ? r/w (special). 0 = d1 state is not supported 1 = d1 state is supported 8:6 auxiliary current (aux_cur) ? r/w (special). the intel ? 631xesb/632xesb i/o controller hub ehc reports 375 ma maximum suspend well current required when in the d3 cold state. this value can be written by bios when a more accurate value is known. 5 device specific initialization (dsi ) ? r/w (special). the intel ? 631xesb/632xesb i/o controller hub reports 0, indicating that no device-specific initialization is required. 4 reserved 3 pme clock (pme_clk) ? r/w (special). the intel ? 631xesb/632xesb i/o controller hub reports 0, indicating that no pci clock is required to generate pme#. 2:0 version (ver) ? r/w (special). the intel ? 631xesb/632xesb i/o controller hub reports 010b, indicating that it complies with revision 1.1 of the pci power management specification.
590 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 17.1.19 pwr_cntl_sts ? power management control/status register (usb ehci ? d29:f7) address offset: 54?55h attribute: r/w, r/wc, ro default value: 0000h size: 16 bits note: reset (bits 15, 8): suspend well, and not d3-to-d0 warm reset nor core well reset. 17.1.20 debug_capid ? debug port capability id register (usb ehci ? d29:f7) address offset: 58h attribute: ro default value: 0ah size: 8 bits 17.1.21 nxt_ptr2 ? next item pointer #2 register (usb ehci ? d29:f7) address offset: 59h attribute: ro default value: 00h size: 8 bits bit description 15 pme status ? r/wc. 0 = writing a 1 to this bit will clear it and cause the internal pme to deassert (if enabled). 1 = this bit is set when the ehc would normally assert the pme# signal independent of the state of the pme_en bit. note: this bit must be explicitly cleared by the operating system each time the operating system is loaded. 14:13 data scale ? ro. hardwired to 00b indicating it does not support the associated data register. 12:9 data select ? ro. hardwired to 0000b indicating it does not support the associated data register. 8 pme enable ? r/w. 0 = disable. 1 = enable. enables ehc to generate an internal pme signal when pme_status is 1. note: this bit must be explicitly cleared by the operating system each time it is initially loaded. 7:2 reserved 1:0 power state ? r/w. this 2-bit field is used both to determine the current power state of ehc function and to set a new power state. the definition of the field values are: 00 = d0 state 11 = d3 hot state if software attempts to write a value of 10b or 01b in to this field, the write operation must complete normally; however, the data is discarded and no state change occurs. when in the d3 hot state, the must not accept accesses to the ehc memory range; but the configuration space must still be accessible. when not in the d0 state, the generation of the interrupt output is blocked. specifically, the pirqh is not asserted when not in the d0 state. when software changes this value from the d3 hot state to the d0 state, an internal warm (soft) reset is generated, and software must re-initialize the function. bit description 7:0 debug port capability id ? ro. hardwired to 0ah in dicating that this is the start of a debug port capability structure. bit description 7:0 next item pointer 2 capability ? ro. hardwired to 00h to indicate there are no more capability structures in this function.
intel ? 631xesb/632xesb i/o controller hub datasheet 591 ehci controller registers (d29:f7) 17.1.22 debug_base ? debug port base offset register (usb ehci ? d29:f7) address offset: 5ah?5bh attribute: ro default value: 20a0h size: 16 bits 17.1.23 usb_relnum ? usb release number register (usb ehci ? d29:f7) address offset: 60h attribute: ro default value: 20h size: 8 bits 17.1.24 fl_adj ? frame length adjustment register (usb ehci ? d29:f7) address offset: 61h attribute: r/w default value: 20h size: 8 bits this feature is used to adjust any offset fr om the clock source that generates the clock that drives the sof counter. when a new value is written into these six bits, the length of the frame is adjusted. its initial programmed value is system dependent based on the accuracy of hardware usb clock and is initialized by system bios. this register should only be modified when the hchalted bit (d29:f7:caplength + 24h, bit 12) in the usb2.0_sts register is a 1. changing value of this register while the host controller is operating yields undefined results. it should not be reprogrammed by usb system software unless the default or bios programmed values are incorrect, or the system is restoring the register while returning from a suspended state. these bits in suspend well and not reset by a d3-to-d0 warm rest or a core well reset. bit description 15:13 bar number ? ro. hardwired to 001b to indicate the memory bar begins at offset 10h in the ehci configuration space. 12:0 debug port offset ? ro. hardwired to 0a0h to indicate that the debug port registers begin at offset a0h in the ehci memory range. bit description 7:0 usb release number ? ro. a value of 20h indicates that this controller follows universal serial bus (usb) specification , revision 2.0.
592 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 17.1.25 pwake_cap ? port wake capability register (usb ehci ? d29:f7) address offset: 62?63h attribute: r/w default value: 01ffh size: 16 bits this register is in the suspend power well. the intended use of this register is to establish a policy about which ports are to be used for wake events. bit positions 1?8 in the mask correspond to a physical port implemented on the current ehci controller. a 1 in a bit position indicates that a device connected below the port can be enabled as a wake-up device and the port may be enabled for disconnect/connect or overcurrent events as wake-up events. this is an information-only mask register. the bits in this register do not affect the actual operation of the ehci host controller. the system- specific policy can be established by bios initializing this register to a system-specific value. system software uses the information in this register when enabling devices and ports for remote wake-up. these bits are not reset by a d3-to-d0 warm rest or a core well reset. bit description 7:6 reserved ? ro. these bits are reserved for future use and should read as 00b. 5:0 frame length timing value ? r/w. each decimal value change to this register corresponds to 16 high-speed bit times. the sof cycle time (number of sof counter clock periods to generate a sof micro-frame length) is equal to 59488 + value in this field. the default value is decimal 32 (20h), which gives a sof cycle time of 60000. frame length fladj value (# 480 mhz clocks) decimal (hex) 594880 (00h) 595041 (01h) 595202 (02h) ? 59984 31 (1fh) 60000 32 (20h) ? 60480 62 (3eh) 60496 63 (3fh) bit description 15:9 reserved ? ro. 8:1 port wake up capability mask ? r/w. bit positions 1 through 8 correspond to a physical port implemented on this host controller. for example, bit position 1 corresponds to port 1, bit position 2 corresponds to port 2, and so forth. 0 port wake implemented ? r/w. a 1 in this bit indicates that this register is implemented to software.
intel ? 631xesb/632xesb i/o controller hub datasheet 593 ehci controller registers (d29:f7) 17.1.26 leg_ext_cap ? usb ehci legacy support extended capability register (usb ehci ? d29:f7) address offset: 68?6bh attribute: r/w, ro default value: 00000001h size: 32 bits power well: suspend note: these bits are not reset by a d3-to-d0 warm rest or a core well reset. 17.1.27 leg_ext_cs ? usb ehci legacy support extended control / status register (usb ehci ? d29:f7) address offset: 6c?6fh attribute: r/w, r/wc, ro default value: 00000000h size: 32 bits power well: suspend note: these bits are not reset by a d3-to-d0 warm rest or a core well reset. bit description 31:25 reserved ? ro. hardwired to 00h 24 hc os owned semaphore ? r/w. system software sets this bit to request ownership of the ehci controller. ownership is obtained when this bit reads as 1 and the hc bios owned semaphore bit reads as clear. 23:17 reserved ? ro. hardwired to 00h 16 hc bios owned semaphore ? r/w. the bios sets this bit to establish ownership of the ehci controller. system bios will clear this bit in response to a request for ownership of the ehci controller by system software. 15:8 next ehci capability pointer ? ro. hardwired to 00h to indicate that there are no ehci extended capability structures in this device. 7:0 capability id ? ro. hardwired to 01h to indicate that this ehci extended capability is the legacy support capability. bit description 31 smi on bar ? r/wc. software clears this bit by writing a 1 to it. 0 = base address register (bar) not written. 1 = this bit is set to 1 when the base address register (bar) is written. 30 smi on pci command ? r/wc. software clears this bit by writing a 1 to it. 0 = pci command (pcicmd) register not written. 1 = this bit is set to 1 when the pci command (pcicmd) register is written. 29 smi on os ownership change ? r/wc. software clears this bit by writing a 1 to it. 0 = no hc os owned semaphore bit change. 1 = this bit is set to 1 when the hc os owned semaphore bit in the leg_ext_cap register (d29:f7:68h, bit 24) transitions from 1 to 0 or 0 to 1. 28:22 reserved ? ro. hardwired to 00h 21 smi on async advance ? ro. this bit is a shadow bit of the interrupt on async advance bit (d29:f7:caplength + 24h, bit 5) in the usb2.0_sts register. note: to clear this bit system software must write a 1 to the interrupt on async advance bit in the usb2.0_sts register. 20 smi on host system error ? ro. this bit is a shadow bit of host system error bit in the usb2.0_sts register (d29:f7:caplength + 24h, bit 4). note: to clear this bit system software must write a 1 to the host system error bit in the usb2.0_sts register. 19 smi on frame list rollover ? ro. this bit is a shadow bit of frame list rollover bit (d29:f7:caplength + 24h, bit 3) in the usb2.0_sts register. note: to clear this bit system software must write a 1 to the frame list rollover bit in the usb2.0_sts register.
594 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 18 smi on port change detect ? ro. this bit is a shadow bit of port change detect bit (d29:f7:caplength + 24h, bit 2) in the usb2.0_sts register. note: to clear this bit system software must write a 1 to the port change detect bit in the usb2.0_sts register. 17 smi on usb error ? ro. this bit is a shadow bit of usb error interrupt (usberrint) bit (d29:f7:caplength + 24h, bit 1) in the usb2.0_sts register. note: to clear this bit system software must write a 1 to the usb error interrupt bit in the usb2.0_sts register. 16 smi on usb complete ? ro. this bit is a shadow bit of usb interrupt (usbint) bit (d29:f7:caplength + 24h, bit 0) in the usb2.0_sts register. note: to clear this bit system software must write a 1 to the usb interrupt bit in the usb2.0_sts register. 15 smi on bar enable ? r/w. 0 = disable. 1 = enable. when this bit is 1 and smi on bar (d29:f7:6ch, bit 31) is 1, then the host controller will issue an smi. 14 smi on pci command enable ? r/w. 0 = disable. 1 = enable. when this bit is 1 and smi on pci command (d29:f7:6ch, bit 30) is 1, then the host controller will issue an smi. 13 smi on os ownership enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1 and the os ownership change bit (d29:f7:6ch, bit 29) is 1, the host controller will issue an smi. 12:6 reserved ? ro. hardwired to 00h 5 smi on async advance enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the smi on async advance bit (d29:f7:6ch, bit 21) is a 1, the host controller will issue an smi immediately. 4 smi on host system error enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the smi on host system error (d29:f7:6ch, bit 20) is a 1, the host controller will issue an smi. 3 smi on frame list rollover enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the smi on frame list rollover bit (d29:f7:6ch, bit 19) is a 1, the host controller will issue an smi. 2 smi on port change enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the smi on port change detect bit (d29:f7:6ch, bit 18) is a 1, the host controller will issue an smi. 1 smi on usb error enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the smi on usb error bit (d29:f7:6ch, bit 17) is a 1, the host controller will issue an smi immediately. 0 smi on usb complete enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the smi on usb complete bit (d29:f7:6ch, bit 16) is a 1, the host controller will issue an smi immediately. bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 595 ehci controller registers (d29:f7) 17.1.28 special_smi ? intel sp ecific usb 2.0 smi register (usb ehci ? d29:f7) address offset: 70?73h attribute: r/w, r/wc default value: 00000000h size: 32 bits power well: suspend note: these bits are not reset by a d3-to-d0 warm rest or a core well reset. bit description 31:30 reserved ? ro. hardwired to 00h 29:22 smi on portowner ? r/wc. software clears these bits by writing a 1 to it. 0 = no port owner bit change. 1 = bits 29:22 correspond to the port owner bits for ports 1 (22) through 8 (29). these bits are set to 1 when the associated port owner bits transition from 0 to 1 or 1 to 0. 21 smi on pmcsr ? r/wc. software clears these bits by writing a 1 to it. 0 = power state bits not modified. 1 = software modified the power state bits in the power management control/status (pmcsr) register (d29:f7:54h). 20 smi on async ? r/wc. software clears these bits by writing a 1 to it. 0 = no async schedule enable bit change 1 = async schedule enable bit transitioned from 1 to 0 or 0 to 1. 19 smi on periodic ? r/wc. software clears this bit by writing a 1 it. 0 = no periodic schedule enable bit change. 1 = periodic schedule enable bit transitions from 1 to 0 or 0 to 1. 18 smi on cf ? r/wc. software clears this bit by writing a 1 it. 0 = no configure flag (cf) change. 1 = configure flag (cf) transitions from 1 to 0 or 0 to 1. 17 smi on hchalted ? r/wc. software clears this bit by writing a 1 it. 0 = hchalted did not transition to 1 (as a result of the run/stop bit being cleared). 1 = hchalted transitions to 1 (as a result of the run/stop bit being cleared). 16 smi on hcreset ? r/wc. software clears this bit by writing a 1 it. 0 = hcreset did not transitioned to 1. 1 = hcreset transitioned to 1. 15:14 reserved ? ro. hardwired to 00h 13:6 smi on portowner enable ? r/w. 0 = disable. 1 = enable. when any of these bits are 1 and the corresponding smi on portowner bits are 1, then the host controller will issue an smi. unused ports should have their corresponding bits cleared. 5 smi on pmscr enable ? r/w. 0 = disable. 1 = enable. when this bit is 1 and smi on pmscr is 1, then the host controller will issue an smi. 4 smi on async enable ? r/w. 0 = disable. 1 = enable. when this bit is 1 and smi on async is 1, then the host controller will issue an smi 3 smi on periodic enable ? r/w. 0 = disable. 1 = enable. when this bit is 1 and smi on periodic is 1, then the host controller will issue an smi. 2 smi on cf enable ? r/w. 0 = disable. 1 = enable. when this bit is 1 and smi on cf is 1, then the host controller will issue an smi. 1 smi on hchalted enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1 and smi on hchalted is 1, then the host controller will issue an smi. 0 smi on hcreset enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1 and smi on hcreset is 1, then host controller will issue an smi.
596 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 17.1.29 access_cntl ? access control register (usb ehci ? d29:f7) address offset: 80h attribute: r/w default value: 00h size: 8 bits 17.2 memory-mapped i/o registers the ehci memory-mapped i/o space is composed of two sets of registers: capability registers and operational registers. note: the intel ? 631xesb/632xesb i/o controller hub ehci controller will not accept memory transactions (neither reads nor writes) as a target that are locked transactions. the locked transactions should not be forwarded to pci as the address space is known to be allocated to usb. note: when the ehci function is in the d3 pci power state, accesses to the usb 2.0 memory range are ignored and result a master abort. similarly, if the memory space enable (mse) bit (d29:f7:04h, bit 1) is not set in the command register in configuration space, the memory range will not be decoded by the intel ? 631xesb/632xesb i/o controller hub enhanced host controller (ehc). if the mse bit is not set, then the intel ? 631xesb/632xesb i/o controller hub must default to allowing any memory accesses for the range specified in the bar to go to pci. this is because the range may not be valid and, therefore, the cycle must be made available to any other targets that may be currently using that range. 17.2.1 host controller capability registers these registers specify the limits, restrictions and capabilities of the host controller implementation. within the host controller capability registers, only the structural parameters register is writable. these registers are implemented in the suspend well and is only reset by the standard suspend-we ll hardware reset, not by hcreset or the d3-to-d0 reset. note: ?read/write special? means that the register is normally read-only, but may be written when the wrt_rdonly bit is set. because these registers are expected to be programmed by bios during initialization, their contents must not get modified by hcreset or d3-to-d0 internal reset. bit description 7:1 reserved 0 wrt_rdonly ? r/w. when set to 1, this bit enables a select group of normally read-only registers in the ehc function to be written by software. registers that may only be written when this mode is entered are noted in the summary tables and detailed description as ?read/write-special?. the registers fall into two categories: 1. system-configured parameters, and 2. status bits table 17-2. enhanced host controller capability registers mem_base + offset mnemonic register default type 00h caplength capabilities registers length 20h ro 02?03h hciversion host controller interface version number 0100h ro 04?07h hcsparams host controller structural parameters 00104208h r/w (special), ro 08?0bh hccparams host controller capability parameters 00006871h ro
intel ? 631xesb/632xesb i/o controller hub datasheet 597 ehci controller registers (d29:f7) 17.2.1.1 caplength ? capability registers length register offset: mem_base + 00h attribute: ro default value: 20h size: 8 bits 17.2.1.2 hciversion ? host controller interface version number register offset: mem_base + 02?03h attribute: ro default value: 0100h size: 16 bits 17.2.1.3 hcsparams ? host controller structural parameters offset: mem_base + 04?07h attribute: r/w (special), ro default value: 00104208h size: 32 bits note: this register is reset by a suspend well reset and not a d3-to-d0 reset or hcreset. note: this register is writable when the wrt_rdonly bit is set. bit description 7:0 capability register length value ? ro. this register is used as an offset to add to the memory base register (d29:f7:10h) to find the beginning of the operational register space. this field is hardwired to 20h indicating that the operation registers begin at offset 20h. bit description 15:0 host controller interface version number ? ro. this is a two-byte register containing a bcd encoding of the version number of interface that this host controller interface conforms. bit description 31:24 reserved ? ro. default=0h. 23:20 debug port number (dp_n) ? r/w (special). hardwired to 1h indicating that the debug port is on the lowest numbered port. 19:16 reserved 15:12 number of companion controllers (n_cc) ? r/w (special). this field indicates the number of companion controllers associated with this usb ehci host controller. a 0 in this field indicates there are no companion host controllers. port-ownership hand-off is not supported. only high-speed devices are supported on the host controller root ports. a value larger than 1 in this field indicates there are companion usb uhci host controller(s). port- ownership hand-offs are supported. high, full- and low-speed devices are supported on the host controller root ports. the intel ? 631xesb/632xesb i/o controller hub allows the default value of 4h to be over-written by bios. when removing classic controllers, they should be disabled in the following order: function 3, function 2, function 1, and function 0, wh ich correspond to ports 7:6, 5:4, 3:2, and 1:0, respectively. 11:8 number of ports per companion controller (n_pcc) ? ro. hardwired to 2h. this field indicates the number of ports supported per companion host controller. it is used to indicate the port routing configuration to system software. 7:4 reserved. these bits are reserved and default to 0. 3:0 n_ports ? r/w (special). this field specifies the number of physical downstream ports implemented on this host controller. the value of this field determines how many port registers are addressable in the operational register space. valid values are in the range of 1h to fh. reports 8h by default. however, software may write a value less than 8 for some platform configurations. a 0 in this field is undefined.
598 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 17.2.1.4 hccparams ? host controller capability parameters register offset: mem_base + 08?0bh attribute: ro default value: 00006871h size: 32 bits 17.2.2 host controller operational registers this section defines the enhanced host controller operational registers. these registers are located after the capabilities registers. the operational register base must be dword-aligned and is calculated by adding th e value in the first capabilities register (caplength) to the base address of the enhanced host controller register address space (mem_base). since caplength is always 20h, ta b l e 1 7 - 3 already accounts for this offset. all registers are 32 bits in length. bit description 31:16 reserved 15:8 ehci extended capabilities pointer (eecp) ? ro. th is field is hardwired to 68h, indicating that the ehci capabilities list exists and begins at offset 68h in the pci configuration space. 7:4 isochronous scheduling threshold ? ro. this field indicates, relative to the current position of the executing host controller, where software can reliably update the isochronous schedule. when bit 7 is 0, the value of the least significant 3 bits indicates the number of micro-frames a host controller hold a set of isochronous data structures (one or more) before flushing the state. when bit 7 is a 1, then host software assumes the host controller may cache an isochronous data structure for an entire frame. refer to the ehci specification for details on how software uses this information for scheduling isochronous transfers. this field is hardwired to 7h. 3 reserved. these bits are reserved and should be set to 0. 2 asynchronous schedule park capability ? ro. this bit is hardwired to 0 in dicating that the host controller does not support this optional feature 1 programmable frame list flag ? ro. 0 = system software must use a frame list length of 1024 elements with this host controller. the usb2.0_cmd register (d29:f7:caplength + 20h, bits 3:2) frame list size field is a read-only register and must be set to 0. 1 = system software can specify and use a smaller frame list and configure the host controller via the usb2.0_cmd register frame list size field. the frame list must always be aligned on a 4k page boundary. this requirement ensures that th e frame list is always physically contiguous. 0 64-bit addressing capability ? ro. this field do cuments the addressing range capability of this implementation. the value of this field determines whether software should use the 32-bit or 64-bit data structures. values for this field have the following interpretation: 0 = data structures using 32-bit address memory pointers 1 = data structures using 64-bit address memory pointers this bit is hardwired to 1. note: intel ? 631xesb/632xesb i/o controller hub only implements 44 bits of addressing. bits 63:44 will always be 0. table 17-3. enhanced host controller oper ational register address map (sheet 1 of 2) mem_base + offset mnemonic register name default special notes type 20?23h usb2.0_cmd usb 2.0 command 00080000h r/w, ro 24?27h usb2.0_sts usb 2.0 status 00001000h r/wc, ro 28?2bh usb2.0_intr usb 2.0 interrupt enable 00000000h r/w 2c?2fh frindex usb 2.0 frame index 00000000h r/w, 30?33h ctrldssegment control data structure segment 00000000h r/w, ro
intel ? 631xesb/632xesb i/o controller hub datasheet 599 ehci controller registers (d29:f7) note: software must read and write these registers using only dword accesses.these registers are divided into two sets. the first set at offsets mem_base + 00:3bh are implemented in the core power well. unless otherwise noted, the core-well registers are reset by the assertion of any of the following: ? core well hardware reset ?hcreset ? d3-to-d0 reset the second set at offsets mem_base + 60h to the end of the implemented register space are implemented in the suspend power well. unless otherwise noted, the suspend-well registers are reset by the assertion of either of the following: ? suspend well hardware reset ?hcreset 34?37h perodiclistbase period frame list base address 00000000h r/w 38?3bh asynclistaddr current asynchronous list address 00000000h r/w 3c?5fh ? reserved 0h ro 60?63h configglag configure flag 00000000h suspend r/w 64?67h port0sc port 0 status and control 00003000h suspend r/w, r/wc, ro 68?6bh port1sc port 1 status and control 00003000h suspend r/w, r/wc, ro 6c?6fh port2sc port 2 status and control 00003000h suspend r/w, r/wc, ro 70?73h port3sc port 3 status and control 00003000h suspend r/w, r/wc, ro 74?77h port4sc port 4 status and control 00003000h suspend r/w, r/wc, ro 78?7bh port5sc port 5 status and control 00003000h suspend r/w, r/wc, ro 7c?7fh port6sc port 6 status and control 00003000h suspend r/w, r/wc, ro 80?83h port7sc port 7 status and control 00003000h suspend r/w, r/wc, ro 84?9fh ? reserved undefined ro a0?b3h ? debug port registers undefined see register description b4?3ffh ? reserved undefined ro table 17-3. enhanced host controller oper ational register address map (sheet 2 of 2) mem_base + offset mnemonic register name default special notes type
600 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 17.2.2.1 usb2.0_cmd ? usb 2.0 command register offset: mem_base + 20?23h attribute: r/w, ro default value: 00080000h size: 32 bits bit description 31:24 reserved. these bits are reserved and should be set to 0 when writing this register. 23:16 interrupt threshold control ? r/w. system software uses this field to select the maximum rate at which the host controller will issue interrupts. the only valid values are defined below. if software writes an invalid value to this register, the results are undefined. value maximum interrupt interval 00h reserved 01h1 micro-frame 02h2 micro-frames 04h4 micro-frames (default) 08h8 micro-frames (default, equates to 1 ms) 10h16 micro-frames (2 ms) 20h32 micro-frames (4 ms) 40h64 micro-frames (8 ms) 15:8 reserved. these bits are reserved and should be set to 0 when writing this register. 11:8 unimplemented asynchronous park mode bits. hardwired to 000b indicating the host controller does not support this optional feature. 7 light host controller reset ? ro. hardwired to 0. optional reset is not implemented. 6 interrupt on async advance doorbell ? r/w. this bit is used as a doorbell by software to tell the host controller to issue an interrupt the next time it advances asynchronous schedule. 0 = the host controller sets this bit to a 0 after it has set the interrupt on async advance status bit (d29:f7:caplength + 24h, bit 5) in the usb2.0_sts register to a 1. 1 = software must write a 1 to this bit to ring the doorbell. when the host controller has evicted all appropriate cached schedule state, it sets the interrupt on async advance status bit in the usb2.0_sts register. if the interrupt on async advance enable bit in the usb2.0_intr register (d29:f7:caplength + 28h, bit 5) is a 1 then the host controller will assert an interrupt at the next interrupt threshold. see the ehci specification for operational details. note: software should not write a 1 to this bit when the asynchronous schedule is inactive. doing so will yield undefined results. 5 asynchronous schedule enable ? r/w. default 0b. this bit controls whether the host controller skips processing the asynchronous schedule. 0 = do not process the asynchronous schedule 1 = use the asynclistaddr register to access the asynchronous schedule. 4 periodic schedule enable ? r/w. default 0b. this bit controls whether the host controller skips processing the periodic schedule. 0 = do not process the periodic schedule 1 = use the periodiclistbase register to access the periodic schedule.
intel ? 631xesb/632xesb i/o controller hub datasheet 601 ehci controller registers (d29:f7) note: the command register indicates the command to be executed by the serial bus host controller. writing to the register causes a command to be executed. 17.2.2.2 usb2.0_sts ? usb 2.0 status register offset: mem_base + 24?27h attribute: r/wc, ro default value: 00001000h size: 32 bits this register indicates pending interrupts and various states of the host controller. the status resulting from a transaction on the serial bus is not indicated in this register. see the interrupts description in section 4 of the ehci specification for additional information concerning usb 2.0 interrupt conditions. note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 has no effect. 3:2 frame list size ? ro. hardwire this field to 00b because it only supports the 1024-element frame list size. 1 host controller reset (hcreset) ? r/w. this control bit used by software to reset the host controller. the effects of this on root hub registers are similar to a chip hardware reset (that is, rsmrst# assertion and pwrok deassertion on the intel ? 631xesb/632xesb i/o controller hub). when software writes a 1 to this bit, the host controller resets its internal pipelines, timers, counters, state machines, and so forth, to their initial value. any transaction currently in progress on usb is immediately terminated. a usb reset is not driven on downstream ports. note: pci configuration registers and host controller capability registers are not effected by this reset. all operational registers, including port registers and port state machines are set to their initial values. port ownership reverts to the companion host controller(s), with the side effects described in the ehci spec. software must re-initialize the host controller in order to return the host controller to an operational state. this bit is set to 0 by the host controller when the reset process is complete. software cannot terminate the reset process early by writing a 0 to this register. software should not set this bit to a 1 when the hchalted bit (d29:f7:caplength + 24h, bit 12) in the usb2.0_sts register is a 0. attempting to rese t an actively running host controller will result in undefined behavior. this reset me be used to leave ehci port test modes. 0 run/stop (rs) ? r/w. 0 = stop (default) 1 = run. when set to a 1, the host controller proceeds with execution of the schedule. the host controller continues execution as long as this bit is set. when this bit is set to 0, the host controller completes the current transaction on the usb and then halts. the hchalted bit in the usb2.0_sts register indicates when the host controller has finished the transaction and has entered the stopped state. software should not write a 1 to this field unl ess the host controller is in the halted state (that is, hchalted in the usbsts register is a 1). the halted bit is cleared immediately when the run bit is set. the following table explains how the different combinations of run and halted should be interpreted: run/stophaltedinterpretation 0 0 valid- in the process of halting 0 1 valid- halted 1 0 valid- running 1 1 invalid- the hchalted bit clears immediately. memory read cycles initiated by the ehc that receive any status other than successful will result in this bit being cleared. bit description
602 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) bit description 31:16 reserved. these bits are reserved and should be set to 0 when writing this register. 15 asynchronous schedule status ? ro. this bit reports the current real status of the asynchronous schedule. 0 = status of the asynchronous schedule is disabled. (default) 1 = status of the asynchronous schedule is enabled. note: the host controller is not required to immediately disable or enable the asynchronous schedule when software transitions the asynchronous schedule enable bit (d29:f7:caplength + 20h, bit 5) in the usb2.0_cmd register. when this bit and the asynchronous schedule enable bit are the same value, the asynchronous schedule is either enabled (1) or disabled (0). 14 periodic schedule status ? ro. this bit reports the current real status of the periodic schedule. 0 = status of the periodic schedule is disabled. (default) 1 = status of the periodic schedule is enabled. note: the host controller is not required to immediately disable or enable the periodic schedule when software transitions the periodic schedule enable bit (d29:f7:caplength + 20h, bit 4) in the usb2.0_cmd register. when this bit and the periodic schedule enable bit are the same value, the periodic schedule is either enabled (1) or disabled (0). 13 reclamation ? ro. 0=default. this read-only status bit is used to detect an empty asynchronous schedule. the operational model and valid transition s for this bit are described in section 4 of the ehci specification. 12 hchalted ? ro. 0 = this bit is a 0 when the run/stop bit is a 1. 1 = the host controller sets this bit to 1 after it has stopped executing as a result of the run/stop bit being set to 0, either by software or by the host controller hardware (for example, internal error). (default) 11:6 reserved 5 interrupt on async advance ? r/wc. 0=default. system software can force the host controller to issue an interrupt the next time the host controller advances the asynchronous schedule by writing a 1 to the interrupt on async advance doorbell bit (d29:f7:caplength + 20h, bit 6) in the usb2.0_cmd register. this bit indicates the assertion of that interrupt source. 4 host system error ? r/wc. 0 = no serious error occurred during a host system access involving the host controller module 1 = the host controller sets this bit to 1 when a serious error occurs during a host system access involving the host controller module. a hardware interrupt is generated to the system. memory read cycles initiated by the ehc that receive any status other than successful will result in this bit being set. when this error occurs, the host controller clears the run/stop bit in the usb2.0_cmdregister (d29:f7:caplength + 20h, bit 0) to prevent further execution of the scheduled tds. a hardware interrupt is generated to the system (if enabled in the interrupt enable register). 3 frame list rollover ? r/wc. 0 = no frame list index rollover from its maximum value to 0. 1 = the host controller sets this bit to a 1 when the frame list index (see section) rolls over from its maximum value to 0. since the intel ? 631xesb/632xesb i/o controller hub only supports the 1024-entry frame list size, the frame list index rolls over every time frnum13 toggles.
intel ? 631xesb/632xesb i/o controller hub datasheet 603 ehci controller registers (d29:f7) 17.2.2.3 usb2.0_intr ? usb 2.0 interrupt enable register offset: mem_base + 28?2bh attribute: r/w default value: 00000000h size: 32 bits this register enables and disables reporting of the corresponding interrupt to the software. when a bit is set and the corresponding interrupt is active, an interrupt is generated to the host. interrupt sources that are disabled in this register still appear in the usb2.0_sts register to allow the software to poll for events. each interrupt enable bit description indicates whether it is dependent on the interrupt threshold mechanism (see section 4 of the ehci specification), or not. 2 port change detect ? r/wc. this bit is allowed to be main tained in the auxiliary power well. alternatively, it is also acceptable that on a d3 to d0 transition of the ehci hc device, this bit is loaded with the or of all of the portsc change bits (including: force port resume, overcurrent change, enable/disable change and connect status change). regardless of the implementation, when this bit is readable (that is, in the d0 state), it mu st provide a valid view of the port status registers. 0 = no change bit transition from a 0 to 1 or no force port resume bit transition from 0 to 1 as a result of a j-k transition detected on a suspended port. 1 = the host controller sets this bit to 1 when any port for which the port owner bit is set to 0 has a change bit transition from a 0 to 1 or a force port resume bit transition from 0 to 1 as a result of a j-k transition detected on a suspended port. 1 usb error interrupt (usberrint) ? r/wc. 0 = no error condition. 1 = the host controller sets this bit to 1 when completion of a usb transaction results in an error condition (for example, error counter underflow). if the td on which the error interrupt occurred also had its ioc bit set, both this bit and bit 0 ar e set. see the ehci specification for a list of the usb errors that will result in this interrupt being asserted. 0 usb interrupt (usbint) ? r/wc. 0 = no completion of a usb transaction whose transfer descriptor had its ioc bit set. no short packet is detected. 1 = the host controller sets this bit to 1 when the cause of an interrupt is a completion of a usb transaction whose transfer descriptor had its ioc bit set. the host controller also sets this bit to 1 when a short packet is detected (actual number of bytes received was less than the expected number of bytes). bit description bit description 31:6 reserved. these bits are reserved and should be 0 when writing this register. 5 interrupt on async advance enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the interrupt on async advance bit (d29:f7:caplength + 24h, bit 5) in the usb2.0_sts register is a 1, th e host controller will issue an interrupt at the next interrupt threshold. the interrupt is acknow ledged by software clearing the interrupt on async advance bit. 4 host system error enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the host system error status bit (d29:f7:caplength + 24h, bit 4) in the usb2.0_sts register is a 1, the ho st controller will issue an interrupt. the interrupt is acknowledged by software clearing the host system error bit. 3 frame list rollover enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the frame list rollover bit (d29:f7:caplength + 24h, bit 3) in the usb2.0_sts register is a 1, the host co ntroller will issue an interrupt. the interrupt is acknowledged by software clearing the frame list rollover bit.
604 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 17.2.2.4 frindex ? frame index register offset: mem_base + 2c?2fh attribute: r/w default value: 00000000h size: 32 bits the sof frame number value for the bus sof token is derived or alternatively managed from this register. refer to section 4 of the ehci specification for a detailed explanation of the sof value management requirements on the host controller. the value of frindex must be within 125 s (1 micro-frame) ahead of the sof token value. the sof value may be implemented as an 11-bit shadow register. for this discussion, this shadow register is 11 bits and is named sofv. sofv updates every 8 micro-frames. (1 millisecond). an example implementation to achieve this behavior is to increment sofv each time the frindex[2:0] increments from 0 to 1. software must use the value of frindex to derive the current micro-frame number, both for high-speed isochronous scheduling purposes and to provide the get micro- frame number function required to client drivers. therefore, the value of frindex and the value of sofv must be kept consistent if chip is reset or software writes to frindex. writes to frindex must also write-through frindex[13:3] to sofv[10:0]. in order to keep the update as simple as possible, software should never write a frindex value where the three least significant bits are 111b or 000b. note: this register is used by the host controller to index into the periodic frame list. the register updates every 125 microseconds (once each micro-frame). bits [12:3] are used to select a particular entry in the periodic frame list during periodic schedule execution. the number of bits used for the index is fixed at 10 for the intel ? 631xesb/ 632xesb i/o controller hub since it only supports 1024-entry frame lists. this register must be written as a dword. word and byte writes produce undefined results. this register cannot be written unless the host controller is in the halted state as indicated by the hchalted bit (d29:f7:caplength + 24h, bit 12). a write to this register while the run/stop bit (d29:f7:caplength + 20h, bit 0) is set to a 1 (usb2.0_cmd register) produces undefined results. writes to this register also effect the sof value. see section 4 of the ehci specification for details. 2 port change interrupt enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the port change detect bit (d29:f7:caplength + 24h, bit 2) in the usb2.0_sts register is a 1, the host cont roller will issue an interrupt. the interrupt is acknowledged by software clearing the port change detect bit. 1 usb error interrupt enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the usberrint bit (d29:f7:caplength + 24h, bit 1) in the usb2.0_sts register is a 1, the host controlle r will issue an interrupt at the next interrupt threshold. the interrupt is acknowledged by software by clearing the usberrint bit in the usb2.0_sts register. 0 usb interrupt enable ? r/w. 0 = disable. 1 = enable. when this bit is a 1, and the usbi nt bit (d29:f7:caplength + 24h, bit 0) in the usb2.0_sts register is a 1, the host controlle r will issue an interrupt at the next interrupt threshold. the interrupt is acknowledged by software by clearing the usbint bit in the usb2.0_sts register. bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 605 ehci controller registers (d29:f7) 17.2.2.5 ctrldssegment ? control data structure segment register offset: mem_base + 30?33h attribute: r/w, ro default value: 00000000h size: 32 bits this 32-bit register corresponds to the most significant address bits [63:32] for all ehci data structures. since the intel ? 631xesb/632xesb i/o controller hub hardwires the 64-bit addressing capability field in hccparams to 1, then this register is used with the link pointers to construct 64-bit addresses to ehci control data structures. this register is concatenated with the link pointer from either the periodiclistbase, asynclistaddr, or any control data structure link field to construct a 64-bit address. this register allows the host software to locate all control data structures within the same 4 gb memory segment. 17.2.2.6 periodiclistbase ? periodic frame list base address register offset: mem_base + 34?37h attribute: r/w default value: 00000000h size: 32 bits this 32-bit register contains the beginning address of the periodic frame list in the system memory. since the intel ? 631xesb/632xesb i/o controller hub host controller operates in 64-bit mode (as indicated by the 1 in the 64-bit addressing capability field in the hccsparams register) (offset 08h, bit 0), then the most significant 32 bits of every control data structure address comes from the ctrldssegment register. hcd loads this register prior to starting the schedule execution by the host controller. the memory structure referenced by this phys ical memory pointer is assumed to be 4- kbyte aligned. the contents of this register are combined with the frame index register (frindex) to enable the host controller to step through the periodic frame list in sequence. bit description 31:14 reserved 13:0 frame list current index/frame number ? r/w. the value in this register increments at the end of each time frame (for example, micro-frame). bits [12:3] are used for the frame list current index. this means that each location of the frame list is accessed 8 times (frames or micro-frames) before moving to the next index. bit description 31:12 upper address[63:44] ? ro. hardwired to 0s. the ehc is only capable of generating addresses up to 16 terabytes (44 bits of address). 11:0 upper address[43:32] ? r/w. this 12-bit field corresponds to address bits 43:32 when forming a control data structure address. bit description 31:12 base address (low) ? r/w. these bits correspond to memory address signals [31:12], respectively. 11:0 reserved. must be written as 0?s. during runtime, the value of these bits are undefined.
606 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 17.2.2.7 asynclistaddr ? current asynchronous list address register offset: mem_base + 38?3bh attribute: r/w default value: 00000000h size: 32 bits this 32-bit register contains the address of the next asynchronous queue head to be executed. since the intel ? 631xesb/632xesb i/o controller hub host controller operates in 64-bit mode (as indicated by a 1 in 64-bit addressing capability field in the hccparams register) (offset 08h, bit 0), then the most significant 32 bits of every control data structure address comes from the ctrldssegment register (offset 08h). bits [4:0] of this register cannot be modified by system software and will always return 0?s when read. the memory structure referenced by this physical memory pointer is assumed to be 32-byte aligned. 17.2.2.8 configflag ? configure flag register offset: mem_base + 60?63h attribute: r/w default value: 00000000h size: 32 bits this register is in the suspend power well . it is only reset by hardware when the suspend power is initially applied or in response to a host controller reset. 17.2.2.9 portsc ? port n status and control register offset: port 0: mem_base + 64?67h port 1: mem_base + 68?6bh port 2: mem_base + 6c?6fh port 3: mem_base + 70?73h port 4: mem_base + 74?77h port 5: mem_base + 78?7bh port 6: mem_base + 7c?7fh port 7: mem_base + 80?83h attribute: r/w, r/wc, ro default value: 00003000h size: 32 bits a host controller must implement one or more port registers. software uses the n_port information from the structural parameters register to determine how many ports need to be serviced. all ports have the structure defined below. software must not write to unreported port status and control registers. bit description 31:5 link pointer low (lpl) ? r/w. these bits correspond to memory address signals [31:5], respectively. this field may only reference a queue head (qh). 4:0 reserved. these bits are reserved and their value has no effect on operation. bit description 31:1 reserved. read from this field will always return 0. 0 configure flag (cf) ? r/w. host software sets this bit as the last action in its process of configuring the host controller. this bit controls the default port-routing control logic. bit values and side-effects are listed below. see section 4 of the ehci spec for operation details. 0 = port routing control logic default-routes each port to the classic host controllers (default). 1 = port routing control logic default-routes all ports to this host controller.
intel ? 631xesb/632xesb i/o controller hub datasheet 607 ehci controller registers (d29:f7) this register is in the suspend power well. it is only reset by hardware when the suspend power is initially applied or in response to a host controller reset. the initial conditions of a port are: ? no device connected ?port disabled. when a device is attached, the port state transitions to the attached state and system software will process this as with any status change notification. refer to section 4 of the ehci specification for operational requirements for how change events interact with port suspend mode. bit description 31:23 reserved. these bits are reserved for future use and will return a value of 0?s when read. 22 wake on overcurrent enable (wkoc_e) ? r/w. 0 = disable. (default) 1 = enable. writing this bit to a 1 enables the setting of the pme status bit in the power management control/status register (offset 54, bit 15) when the overcurrent active bit (bit 4 of this register) is set. 21 wake on disconnect enable (wkdscnnt_e) ? r/w. 0 = disable. (default) 1 = enable. writing this bit to a 1 enables the setting of the pme status bit in the power management control/status register (offset 54, bit 15) when the current connect status changes from connected to disconnected (that is, bit 0 of this register changes from 1 to 0). 20 wake on connect enable (wkcnnt_e) ? r/w. 0 = disable. (default) 1 = enable. writing this bit to a 1 enables the setting of the pme status bit in the power management control/status register (offset 54, bit 15) when the current connect status changes from disconnected to connected (that is, bit 0 of this register changes from 0 to 1). 19:16 port test control ? r/w. when this field is 0?s, the port is not operating in a test mode. a non- zero value indicates that it is operating in test mo de and the specific test mode is indicated by the specific value. the encoding of the test mode bits are (0110b ? 1111b are reserved): bitstest mode 0000btest mode not enabled (default) 0001btest j_state 0010btest k_state 0011btest se0_nak 0100btest packet 0101btest force_enable refer to usb specification revision 2.0, section 7 for details on each test mode. 15:14 reserved ? r/w. should be written to =00b. 13 port owner ? r/w. default = 1b. this bit unconditionally goes to a 0 when the configured flag bit in the usb2.0_cmd register makes a 0 to 1 transition. system software uses this field to release ownership of the port to a selected host controller (in the event that the attached device is not a high-speed device). software writes a 1 to this bit when the attached device is not a high-speed device. a 1 in this bit means that a companion host controller owns and controls the port. see section 4 of the ehci specification for operational details. 12 port power (pp) ? ro. read-only with a value of 1. this indicates that the port does have power. 11:10 line status ? ro.these bits reflect the current logical levels of the d+ (bit 11) and d? (bit 10) signal lines. these bits are used for detection of low-speed usb devices prior to the port reset and enable sequence. this field is valid only when the port enable bit is 0 and the current connect status bit is set to a 1. 00 = se0 10 = j-state 01 = k-state 11 = undefined 9 reserved. this bit will return a 0 when read.
608 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) 8 port reset ? r/w. default = 0. when software writes a 1 to this bit (from a 0), the bus reset sequence as defined in the usb specification, revision 2.0 is started. software writes a 0 to this bit to terminate the bus reset sequence. software must keep this bit at a 1 long enough to guarantee the reset sequence completes as specified in the usb specification, revision 2.0. 1 = port is in reset. 0 = port is not in reset. note: when software writes a 0 to this bit, there may be a delay before the bit status changes to a 0. the bit status will not read as a 0 until after the reset has completed. if the port is in high-speed mode after reset is complete, the host controller will automatically enable this port (for example, set the port enable bit to a 1). a host controller must terminate the reset and stabilize the state of the port within 2 mill iseconds of software transitioning this bit from 0 to 1. for example: if the port detects that the attach ed device is high-speed during reset, then the host controller must have the port in the enabled state within 2 ms of software writing this bit to a 0. the hchalted bit (d29:f7:caplength + 24h, bit 12) in the usb2.0_sts register should be a 0 before software attempts to use this bit. the host controller may hold port reset asserted to a 1 when the hchalted bit is a 1. this bit is 0 if port power is 0 note: system software should not attempt to reset a port if the hchalted bit in the usb2.0_sts register is a 1. doing so will result in undefined behavior. 7 suspend ? r/w. 0 = port not in suspend state.(default) 1 = port in suspend state. port enabled bit and suspend bit of this register define the port states as follows: port enabled, suspend bitsport state 0, xdisable 1, 0enable 1, 1suspend when in suspend state, downstream propagation of data is blocked on this port, except for port reset. note that the bit status does not change until the port is suspended and that there may be a delay in suspending a port depending on the activity on the port. the host controller will unconditionally set this bit to a 0 when software sets the force port resume bit to a 0 (from a 1). a write of 0 to this bit is ignored by the host controller. if host software sets this bit to a 1 when the port is not enabled (that is, port enabled bit is a 0) the results are undefined. 6 force port resume ? r/w. 0 = no resume (k-state) detected/driven on port. (default) 1 = resume detected/driven on port. software sets this bit to a 1 to drive resume signaling. the host controller sets this bit to a 1 if a j-to-k transition is detected while the port is in the suspend state. when this bit transitions to a 1 because a j-to-k transition is detected, the port change detect bit (d29:f7:caplength + 24h, bit 2) in the usb2.0_sts register is also set to a 1. if software sets this bit to a 1, the host controller must not set the port change detect bit. note: when the ehci controller owns the port, the resume sequence follows the defined sequence documented in the usb specification, revision 2.0. the resume signaling (full- speed 'k') is driven on the port as long as th is bit remains a 1. software must appropriately time the resume and set this bit to a 0 when the appropriate amount of time has elapsed. writing a 0 (from 1) causes the port to return to high-speed mode (forcing the bus below the port into a high-speed idle). this bit will remain a 1 until the port has switched to the high-speed idle. 5 overcurrent change ? r/wc. the functionality of this bit is not dependent upon the port owner. software clears this bit by writing a 1 to it. 0 = no change. (default) 1 = there is a change to overcurrent active. 4 overcurrent active ? ro. 0 = this port does not have an overcurrent condition. (default) 1 = this port currently has an overcurrent condition. this bit will automatically transition from 1 to 0 when the over current condition is removed. the intel ? 631xesb/632xesb i/o controller hub automatically disables the port when the overcurrent active bit is 1. 3 port enable/disable change ? r/wc. for the root hub, this bit gets set to a 1 only when a port is disabled due to the appropriate conditions existing at the eof2 point (see section 11 of the usb specification for the definition of a port error). this bit is not set due to the disabled-to-enabled transition, nor due to a disconnect. software clears this bit by writing a 1 to it. 0 = no change in status. (default). 1 = port enabled/disabled status has changed. bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 609 ehci controller registers (d29:f7) 17.2.3 usb 2.0-based debug port register the debug port?s registers are located in the same memory area, defined by the base address register (mem_base), as the standard ehci registers. the base offset for the debug port registers (a0h) is declared in the debug port base offset capability register at configuration offset 5ah (d29:f7:offset 5ah). the specific ehci port that supports this debug capability (port 0) is indicated by a 4-bit field (bits 20 ? 23) in the hcsparams register of the ehci controller. the address map of the debug port registers is shown in ta b l e 1 7 - 4 . notes: 1. all of these registers are implemented in the core well and reset by pltrst#, ehc hcreset, and a ehc d3-to-d0 transition . 2. the hardware associated with this register provides no checks to ensure that software programs the interface correctly. how the hardware behaves when programmed illegally is undefined. 17.2.3.1 cntl_sts ? control/status register offset: mem_base + a0h attribute: r/w, r/wc, ro, wo default value: 0000h size: 32 bits 2 port enabled/disabled ? r/w. ports can only be enabled by the host controller as a part of the reset and enable. software cannot enable a port by writing a 1 to this bit. ports can be disabled by either a fault condition (disconnect event or other fault condition) or by host software. note that the bit status does not change until the port state actually changes. there may be a delay in disabling or enabling a port due to other host controller and bus events. 0 = disable 1 = enable (default) 1 connect status change ? r/wc. this bit indicates a change has occurred in the port?s current connect status. software sets this bit to 0 by writing a 1 to it. 0 = no change (default). 1 = change in current connect status. the host controller sets this bit for all changes to the port device connect status, even if system software has not cleared an existing connect status change. for example, the insertion status changes twice before system software has cleared the changed condition, hub hardware will be ?set ting? an already-set bit (that is, the bit will remain set). 0 current connect status ? ro. this value reflects the current state of the port, and may not correspond directly to the event that caused the connect status change bit (bit 1) to be set. 0 = no device is present. (default) 1 = device is present on port. bit description table 17-4. debug port register address map mem_base + offset mnemonic register name default type a0h cntl_sts control/status 0000h r/w, r/wc, ro, wo a4h usbpid usb pids 0000h r/w, ro a8h databuf[3:0] data buffer (bytes 3:0) 00000000h r/w ach databuf[7:4] data buffer (bytes 7:4) 00000000h r/w b0h config configuration 00007f01h r/w bit description 31 reserved
610 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7) notes: 1. software should do read-modify-write operations to this register to preserve the contents of bits not being modified. this include reserved bits. 2. to preserve the usage of reserved bits in the future, software should always write the same value read from the bit until it is defined. reserved bits will always return 0 when read. 30 owner_cnt ? r/w. 0 = ownership of the debug port is not forced to the ehci controller (default) 1 = ownership of the debug port is forced to the ehci controller (that is, immediately taken away from the companion classic usb host controller) if the port was already owned by the ehci controller, then setting this bit has no effect. this bit overrides all of the ownership-related bits in the standard ehci registers. 29 reserved 28 enabled_cnt ? r/w. 0 = software can clear this by writing a 0 to it. the hardware clears this bit for the same conditions where the port enable/disable change bit (in the portsc register) is set. (default) 1 = debug port is enabled for operation. software can directly set this bit if the port is already enabled in the associated portsc register (this is enforced by the hardware). 27:17 reserved 16 done_sts ? r/wc. software can clear this by writing a 1 to it. 0 = request not complete 1 = set by hardware to indicate that the request is complete. 15:12 link_id_sts ? ro. this field identifies the link interface. 0h = hardwired. indicates that it is a usb debug port. 11 reserved. this bit returns 0 when read. writes have no effect. 10 in_use_cnt ? r/w. set by software to indicate that the port is in use. cleared by software to indicate that the port is free and may be used by other software. this bit is cleared after reset. (this bit has no affect on hardware.) 9:7 exception_sts ? ro. this field indicates the exception when the error_good#_sts bit is set. this field should be ignored if the error_good#_sts bit is 0. 000 =no error. (default) note: this should not be seen, since this field should only be checked if there is an error. 001 =transaction error: indicates the usb 2.0 transaction had an error (crc, bad pid, timeout, and so forth) 010 =hardware error. request was attempted (or in progress) when port was suspended or reset. all other combinations are reserved 6 error_good#_sts ? ro. 0 = hardware clears this bit to 0 after the proper completion of a read or write. (default) 1 = error has occurred. details on the nature of the error are provided in the exception field. 5 go_cnt ? wo. 0 = hardware clears this bit when hardware sets the done_sts bit. (default) 1 = causes hardware to perform a read or write request. note: writing a 1 to this bit when it is already set may result in undefined behavior. 4 write_read#_cnt ? r/w. software clears this bit to indicate that the current request is a read. software sets this bit to indicate that the current request is a write. 0 = read (default) 1 = write 3:0 data_len_cnt ? r/w. this field is used to indicate the size of the data to be transferred. default = 0h. for write operations, this field is set by software to indicate to the hardware how many bytes of data in data buffer are to be transferred to the console. a value of 0h indicates that a zero-length packet should be sent. a value of 1?8 indicates 1?8 bytes are to be transferred. values 9?fh are illegal and how hardware behaves if used is undefined. for read operations, this field is set by hardware to indicate to software how many bytes in data buffer are valid in response to a read operation. a value of 0h indicates that a zero length packet was returned and the state of data buffer is not defined. a value of 1?8 indicates 1?8 bytes were received. hardware is not allowed to return values 9?fh. the transferring of data always starts with byte 0 in the data area and moves toward byte 7 until the transfer size is reached. bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 611 ehci controller registers (d29:f7) 17.2.3.2 usbpid ? usb pids register offset: mem_base + a4h attribute: r/w, ro default value: 0000h size: 32 bits this dword register is used to communicate pid information between the usb debug driver and the usb debug port. the debug port uses some of these fields to generate usb packets, and uses other fields to return pid information to the usb debug driver. 17.2.3.3 databuf[7:0] ? data buffer bytes[7:0] register offset: mem_base + a8?afh attribute: r/w default value: 0000000000000000h size: 64 bits this register can be accessed as 8 separate 8-bit registers or 2 separate 32-bit register. 17.2.3.4 config ? configuration register offset: mem_base + b0?b3h attribute: r/w default value: 00007f01h size: 32 bits bit description 31:24 reserved: these bits will return 0 when read. writes will have no effect. 23:16 received_pid_sts[23:16] ? ro. hardware updates this field with the received pid for transactions in either direction. when the controller is writing data, this field is updated with the handshake pid that is received from the device. when the host controller is reading data, this field is updated with the data packet pid (if the device sent data), or the handshake pid (if the device naks the request). this field is valid when the hardware clears the go_done#_cnt bit. 15:8 send_pid_cnt[15:8] ? r/w. hardware sends this pid to begin the data packet when sending data to usb (that is, write_read#_cnt is asserted). software typically sets this field to either data0 or data1 pid values. 7:0 token_pid_cnt[7:0] ? r/w. hardware sends this pid as the token pid for each usb transaction. software typically sets this field to either in, out, or setup pid values. bit description 63:0 databuffer[63:0] ? r/w. this field is the 8 bytes of the data buffer. bits 7:0 correspond to least significant byte (byte 0). bits 63:56 correspond to the most significant byte (byte 7). the bytes in the data buffer must be written with data before software initiates a write request. for a read request, the data buffer contains valid data when done_sts bit (offset a0, bit 16) is cleared by the hardware, error_good#_sts (offset a0, bit 6) is cleared by the hardware, and the data_length_cnt field (offset a0, bits 3:0) indicates the number of bytes that are valid. bit description 31:15 reserved 14:8 usb_address_cnf ? r/w. this 7-bit field identifies the usb device address used by the controller for all token pid generation. (default = 7fh) 7:4 reserved 3:0 usb_endpoint_cnf ? r/w. this 4-bit field identifies the endpoint used by the controller for all token pid generation. (default = 01h)
612 intel ? 631xesb/632xesb i/o controller hub datasheet ehci controller registers (d29:f7)
intel ? 631xesb/632xesb i/o controller hub datasheet 613 pci-to-pci bridge registers (d30:f0) 18 pci-to-pci bridge registers (d30:f0) the intel ? 631xesb/632xesb i/o controller hub pci bridge resides in pci device 30, function 0 on bus #0. this implements the buffering and control logic between pci and the backbone. the arbitration for the pci bus is handled by this pci device. 18.1 pci configuration registers (d30:f0) note: address locations that are not shown should be treated as reserved (see section 2.3 for details). . table 18-1. pci bridge register address map (pci-pci ? d30:f0) offset mnemonic register name default type 00?01h vid vendor identification 8086h ro 02?03h did device identification 244eh ro 04?05h pcicmd pci command 0000h r/w, ro 06?07h psts pci status 0010h r/wc, ro 08h rid revision identification see register description. ro 09-0bh cc class code 060401h ro 0dh pmlt primary master latency timer 00h ro 0eh headtyp header type 01h ro 18-1ah bnum bus number 000000h r/w, ro 1bh smlt secondary master latency timer 00h r/w, ro 1c-1dh iobase_limit i/o base and limit 0000h r/w, ro 1e?1fh secsts secondary status 0280h r/wc, ro 20?23h membase_limit memory base and limit 00000000h r/w, ro 24?27h pref_mem_base_limit prefetchable memory base and limit 00010001h r/w, ro 28?2bh pmbu32 prefetchable memory upper 32 bits 00000000h r/w 2c?2fh pmlu32 prefetchable memory limit upper 32 bits 00000000h r/w 34h capp capability list pointer 50h ro 3c-3dh intr interrupt information 0000h r/w, ro 3e?3fh bctrl bridge control 0000h r/wc, ro 40?41h spdh secondary pci device hiding 00h r/w, ro 44-47h dtc delayed transaction control 00000000h r/w, ro 48-4b dts bridge proprietary status 00000000h r/wc, ro 4c-4f bpc bridge policy configuration 40000000h r/w ro 50?51h svcap subsystem vendor capability pointer 000dh ro 54-57 svid subsystem vendor ids 00000000 r/wo
614 intel ? 631xesb/632xesb i/o controller hub datasheet pci-to-pci bridge registers (d30:f0) 18.1.1 vid ? vendor identification register (pci-pci ? d30:f0) offset address: 00?01h attribute: ro default value: 8086h size: 16 bits 18.1.2 did ? device identification register (pci-pci ? d30:f0) offset address: 02?03h attribute: ro default value: 244eh size: 16 bits 18.1.3 pcicmd ? pci comman d (pci-pci ? d30:f0) offset address: 04?05h attribute: r/w, ro default value: 0000h size: 16 bits bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel. intel vid = 8086h. bit description 15:0 device id ? ro.this is a 16-bit value assigned to the pci bridge. bit description 15:11 reserved 10 interrupt disable (id) ? ro. hardwired to 0. the pci bridge has no interrupts to disable 9 fast back to back enable (fbe) ? ro. hardwired to 0, per the pci express* specification. 8 serr# enable (serr_en) ? r/w. 0 = disable. 1 = enable the intel ? 631xesb/632xesb i/o controller hub to generate an nmi (or smi# if nmi routed to smi#) when the d30:f0 sse bit (offset 06h, bit 14) is set. 7 wait cycle control (wcc) ? ro. hardwired to 0, per the pci express specification. 6 parity error response (per) ? r/w. 0 = the intel ? 631xesb/632xesb i/o controller hub ignores parity errors on the pci bridge. 1 = the intel ? 631xesb/632xesb i/o controller hub will set the sse bit (d30:f0, offset 06h, bit 14) when parity errors are detected on the pci bridge. 5 vga palette snoop (vps) ? ro. hardwired to 0, per the pci express specification. 4 memory write and invalidate enable (mwe) ? ro. ha rdwired to 0, per the pci express specification. 3 special cycle enable (sce) ? ro. hardwired to 0, per the pci express specification and the pci-to- pci bridge specification. 2 bus master enable (bme) ? r/w. 0 = disable 1 = enable. allows the pci-to-pci bridge to accept cycles from pci. 1 memory space enable (mse) ? r/w. controls the response as a target for memory cycles targeting pci. 0 = disable 1 = enable 0 i/o space enable (iose) ? r/w. controls the response as a target for i/o cycles targeting pci. 0 = disable 0 = enable
intel ? 631xesb/632xesb i/o controller hub datasheet 615 pci-to-pci bridge registers (d30:f0) 18.1.4 psts ? pci status register (pci-pci ? d30:f0) offset address: 06?07h attribute: r/wc, ro default value: 0010h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect.
616 intel ? 631xesb/632xesb i/o controller hub datasheet pci-to-pci bridge registers (d30:f0) bit description 15 detected parity error (dpe) ? r/wc. 0 = parity error not detected. 1 = indicates that the intel ? 631xesb/632xesb i/o controller hub detected a parity error on the internal backbone. this bit gets set even if the parity error response bit (d30:f0:04 bit 6) is not set. 14 signaled system error (sse) ? r/wc. several internal and external sources of the bridge can cause serr#. the first class of errors is parity errors related to the backbone. the pci bridge captures generic data parity errors (errors it finds on the backbone) as well as errors returned on backbone cycles where the bridge was the master. if either of these two conditions is met, and the primary side of the bridge is enabled for parity error response, serr# will be captured as shown below. as with the backbone, the pci bus captures the same sets of errors. the pci bridge captures generic data parity errors (errors it finds on pci) as well as errors returned on pci cycles where the bridge was the master. if either of these two conditions is met, and the secondary side of the bridge is enabled for parity error response, serr# will be captured as shown below. the final class of errors is system bus errors. there are three status bits associated with system bus errors, each with a corresponding enable. the diagram capturing this is shown below. after checking for the three above classes of errors, an serr# is generated, and psts.sse logs the generation of serr#, if cmd.see (d30:f0:04, bit 8) is set, as shown below. 13 received master abort (rma) ? r/wc. 0 = no master abort received. 1 = set when the bridge receives a master abort status from the backbone. 12 received target abort (rta) ? r/wc. 0 = no target abort received. 1 = set when the bridge receives a target abort status from the backbone.
intel ? 631xesb/632xesb i/o controller hub datasheet 617 pci-to-pci bridge registers (d30:f0) 18.1.5 rid ? revision identification register (pci-pci ? d30:f0) offset address: 08h attribute: ro default value: see bit description size: 8 bits 18.1.6 cc ? class code register (pci-pci ? d30:f0) offset address: 09-0bh attribute: ro default value: 060401h size: 32 bits 18.1.7 pmlt ? primary master latency timer register (pci-pci ? d30:f0) offset address: 0dh attribute: ro default value: 00h size: 8 bits 11 signaled target abort (sta) ? r/wc. 0 = no signaled target abort 1 = set when the bridge generates a completion packet with target abort status on the backbone. 10:9 reserved. 8 data parity error detected (dpd) ? r/wc. 0 = data parity error not detected. 1 = set when the bridge receives a completion packet from the backbone from a previous request, and detects a parity error, and cmd.pere is set (d30:f0:04 bit 6). 7:5 reserved. 4 capabilities list (clist) ? ro. hardwired to 1. capability list exist on the pci bridge. 3 interrupt status (is) ? ro. hardwired to 0. the pci bridge does not generate interrupts. 2:0 reserved bit description bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update - nda for the value of the revision id register bit description 23:16 base class code (bcc) ? ro. hardwired to 06h. indicates this is a bridge device. 15:8 sub class code (scc) ? ro. hardwired to 04h. indicates this device is a pci-to-pci bridge. 7:0 programming interface (pi) ? ro. hardwired to 01h. indicates the bridge is subtractive decode bit description 7:3 master latency timer count (mltc) ? ro. reserved per the pci express specification. 2:0 reserved
618 intel ? 631xesb/632xesb i/o controller hub datasheet pci-to-pci bridge registers (d30:f0) 18.1.8 headtyp ? header type register (pci-pci ? d30:f0) offset address: 0eh attribute: ro default value: 81h size: 8 bits 18.1.9 bnum ? bus number register (pci-pci ? d30:f0) offset address: 18-1ah attribute: r/w, ro default value: 000000h size: 24 bits 18.1.10 smlt ? secondary master latency timer register (pci-pci ? d30:f0) offset address: 1bh attribute: r/w, ro default value: 00h size: 8 bits this timer controls the amount of time the intel ? 631xesb/632xesb i/o controller hub pci-to-pci bridge will burst data on its secondary interface. the counter starts counting down from the assertion of frame#. if the grant is removed, then the expiration of this counter will result in the de-assertion of frame#. if the grant has not been removed, then the intel ? 631xesb/632xesb i/o controller hub pci-to-pci bridge may continue ownership of the bus. bit description 7 multi-function device (mfd) ? ro. the value reported here depends upon the state of the ac ?97 function hide (fd) register (chipset config registers:offset 3418h), per the following table: fd.aadfd.amdmfd 001 011 101 110 6:0 header type (htype) ? ro. this 7-bit field identifies the header layout of the configuration space, which is a pci-to-pci bridge in this case. bit description 23:16 subordinate bus number (sbbn) ? r/w. indicates the highest pci bus number below the bridge. 15:8 secondary bus number (scbn) ? r/w. indicates the bus number of pci. 7:0 primary bus number (pbn) ? ro. hardwired to 00h for legacy software compatibility. bit description 7:3 master latency timer count (mltc) ? r/w. this 5-bit field indicates the number of pci clocks, in 8-clock increments, that the intel ? 631xesb/632xesb i/o controller hub remains as master of the bus. 2:0 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 619 pci-to-pci bridge registers (d30:f0) 18.1.11 iobase_limit ? i/o base and limit register (pci-pci ? d30:f0) offset address: 1c-1dh attribute: r/w, ro default value: 0000h size: 16 bits 18.1.12 secsts ? secondary status register (pci-pci ? d30:f0) offset address: 1e?1fh attribute: r/wc, ro default value: 0280h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. bit description 15:12 i/o limit address limit bits [15:12] ? r/w. i/o base bits corresponding to address lines 15:12 for 4-kb alignment. bits 11:0 are assumed to be padded to fffh. 11:8 ii/o limit address capability (iolc) ? ro. indicates that the bridge does not support 32-bit i/o addressing. 7:4 ii/o base address (ioba) ? r/w. i/o base bits corresponding to address lines 15:12 for 4-kb alignment. bits 11:0 are assumed to be padded to 000h. 3:0 ii/o base address capability (iobc) ? ro. indicates that the bridge does not support 32-bit i/o addressing. bit description 15 detected parity error (dpe) ? r/wc. 0 = parity error not detected. 1 = intel ? 631xesb/632xesb i/o controller hub pci bridge detected an address or data parity error on the pci bus 14 received system error (r se) ? r/wc. 0 = serr# assertion not received 1 = serr# assertion is received on pci. 13 received master abort (rma) ? r/wc. 0 = no master abort. 1 = this bit is set whenever the bridge is acting as an initiator on the pci bus and the cycle is master-aborted. for (g)mch/intel ? 631xesb/632xesb i/o controller hub interface packets that have completion required, this must also cause a target abort to be returned and sets psts.sta. (d30:f0:06 bit 11) 12 received target abort (rta) ? r/wc. 0 = no target abort. 1 = this bit is set whenever the bridge is acting as an initiator on pci and a cycle is target-aborted on pci. for (g)mch/intel ? 631xesb/632xesb i/o controller hub interface packets that have completion required, this event must also cause a target abort to be returned, and sets psts.sta. (d30:f0:06 bit 11). 11 signaled target abort (sta) ? r/wc. 0 = no target abort. 1 = this bit is set when the bridge is acting as a target on the pci bus and signals a target abort. 10:9 devsel# timing (devt) ? ro. 01h = medium decode timing. 8 data parity error detected (dpd) ? r/wc. 0 = conditions described below not met. 1 = the intel ? 631xesb/632xesb i/o controller hub sets this bit when all of the following three conditions are met: ? the bridge is the initiator on pci. ? perr# is detected asserted or a parity error is detected internally ? bctrl.pere (d30:f0:3e bit 0) is set. 7 fast back to back capable (fbc) ? ro. hardwired to 1 to indicate that the pci to pci target logic is capable of receiving fast back-to-back cycles.
620 intel ? 631xesb/632xesb i/o controller hub datasheet pci-to-pci bridge registers (d30:f0) 18.1.13 membase_limit ? memory base and limit register (pci-pci ? d30:f0) offset address: 20?23h attribute: r/w, ro default value: 00000000h size: 32 bits this register defines the base and limit, aligned to a 1-mb boundary, of the non- prefetchable memory area of the bridge. accesses that are within the ranges specified in this register will be sent to pci if cmd.mse is set. accesses from pci that are outside the ranges specified will be accepted by the bridge if cmd.bme is set. 18.1.14 pref_mem_base_limit ? prefetchable memory base and limit register (pci-pci ? d30:f0) offset address: 24?27h attribute: r/w, ro default value: 00010001h size: 32-bit defines the base and limit, aligned to a 1-mb boundary, of the prefetchable memory area of the bridge. accesses that are within the ranges specified in this register will be sent to pci if cmd.mse is set. accesses from pci that are outside the ranges specified will be accepted by the bridge if cmd.bme is set. 6 reserved 5 66 mhz capable (66mhz_cap) ? ro. hardwired to 0. this bridge is 33 mhz capable only. 4:0 reserved bit description bit description 31-20 memory limit (ml) ? r/w. these bits are compared with bits 31:20 of the incoming address to determine the upper 1-mb aligned value (exclusive ) of the range. the incoming address must be less than this value. 19-16 reserved 15:4 memory base (mb) ? r/w. these bits are compared with bits 31:20 of the incoming address to determine the lower 1-mb aligned value (inclusive ) of the range. the incoming address must be greater than or equal to this value. 3:0 reserved bit description 31-20 prefetchable memory limit (pml) ? r/w. these bits are compared with bits 31:20 of the incoming address to determine the upper 1-mb alig ned value (exclusive) of the range. the incoming address must be less than this value. 19-16 64-bit indicator (i64l) ? ro. indicates support for 64-bit addressing. 15:4 prefetchable memory base (pmb) ? r/w. these bits are compared with bits 31:20 of the incoming address to determine the lower 1-mb alig ned value (inclusive) of the range. the incoming address must be greater than or equal to this value. 3:0 64-bit indicator (i64b) ? ro. indicates support for 64-bit addressing.
intel ? 631xesb/632xesb i/o controller hub datasheet 621 pci-to-pci bridge registers (d30:f0) 18.1.15 pmbu32 ? prefetchable memory base upper 32 bits register (pci-pci ? d30:f0) offset address: 28?2bh attribute: r/w default value: 00000000h size: 32 bits 18.1.16 pmlu32 ? prefetchable memory limit upper 32 bits register (pci-pci ? d30:f0) offset address: 2c?2fh attribute: r/w default value: 00000000h size: 32 bits 18.1.17 capp ? capability list pointer register (pci-pci ? d30:f0) offset address: 34h attribute: ro default value: 50h size: 8 bits 18.1.18 intr ? interrupt information register (pci-pci ? d30:f0) offset address: 3c?3dh attribute: r/w, ro default value: 0000h size: 16 bits 18.1.19 bctrl ? bridge control register (pci-pci ? d30:f0) offset address: 3e?3fh attribute: r/wc, ro default value: 0000h size: 16 bits bit description 31:0 prefetchable memory base upper portion (pmbu) ? r/w. upper 32-bits of the prefetchable address base. bit description 31:0 prefetchable memory limit upper portion (pmlu) ? r/w. upper 32-bits of the prefetchable address limit. bit description 7:0 capabilities pointer (ptr) ? ro. indicates that the pointer for the first entry in the capabilities list is at 50h in configuration space. bit description 15:8 interrupt pin (ipin) ? ro. the pci bridge does not assert an interrupt. 7:0 interrupt line (iline) ? r/w. software written value to indicate which interrupt line (vector) the interrupt is connected to. no hardware action is taken on this register. since the bridge does not generate an interrupt, bios should program this value to ffh as per the pci bridge specification. bit description 15:12 reserved 11 discard timer serr# enable (dte ) ? r/w. controls the generation of serr# on the primary interface in response to the dts bit being set: 0 = do not generate serr# on a secondary timer discard 1 = generate serr# in response to a secondary timer discard 10 discard timer status (dts) ? r/wc. this bit is set to 1 when the secondary discard timer (see the sdt bit below) expires for a delayed transaction in the hard state.
622 intel ? 631xesb/632xesb i/o controller hub datasheet pci-to-pci bridge registers (d30:f0) 9 secondary discard timer (sdt) ? r/w. this bit sets the maximum number of pci clock cycles that the intel ? 631xesb/632xesb i/o controller hub waits for an initiator on pci to repeat a delayed transaction request. the counter starts once the delayed transaction data is has been returned by the system and is in a buffer in the intel ? 631xesb/632xesb i/o controller hub pci bridge. if the master has not repeated the transaction at least once before the counter expires, the intel ? 631xesb/632xesb i/o controller hub pci bridge discards the transaction from its queue. 0 = the pci master timeout value is between 2 15 and 2 16 pci clocks 1 = the pci master timeout value is between 2 10 and 2 11 pci clocks 8 primary discard timer (pdt ) ? r/w. this bit is r/w for software compatibility only. 7 fast back to back enable (fbe) ? ro. hardwired to 0. the pci logic will not generate fast back-to- back cycles on the pci bus. 6 secondary bus reset (sbr) ? r/w. controls pcirst# assertion on pci. 0 = bridge de-asserts pcirst# 1 = bridge asserts pcirst#. when pcirst# is asserted, the delayed transaction buffers, posting buffers, and the pci bus are initialized back to reset conditions. the rest of the part and the configuration registers are not affected. 5 master abort mode (mam ) ? r/w. controls the intel ? 631xesb/632xesb i/o controller hub pci bridge?s behavior when a master abort occurs: master abort on (g)mch/intel ? 631xesb/632xesb i/o controller hub interconnect (esi): 0 = bridge asserts trdy# on pci. it drives all 1?s for reads, and discards data on writes. 1 = bridge returns a target abort on pci. master abort pci (non-locked cycles): 0 = normal completion status will be returned on the (g)mch/intel ? 631xesb/632xesb i/o controller hub interconnect. 1 = target abort completion status will be returned on the (g)mch/intel ? 631xesb/632xesb i/o controller hub interconnect. note: all locked reads will return a completer abort completion status on the (g)mch/ intel ? 631xesb/632xesb i/o controller hub interconnect. 4 vga 16-bit decode (v16d) ? r/w. enables the intel ? 631xesb/632xesb i/o controller hub pci bridge to provide 16-bits decoding of vga i/o address precluding the decode of vga alias addresses every 1 kb. this bit requires the vgae bit in this register be set. 3 vga enable (vgae) ? r/w. when set to a 1, the intel ? 631xesb/632xesb i/o controller hub pci bridge forwards the following transactions to pci regardless of the value of the i/o base and limit registers. the transactions are qualified by cm d.mse (d30:f0:04 bit 1) and cmd.iose (d30:f0:04 bit 0) being set. ? memory addresses: 000a0000h-000bffffh ? i/o addresses: 3b0h-3bbh and 3c0h-3dfh. for the i/o addresses, bits [63:16] of the address must be 0, and bits [15:10] of the address are ignored (that is, aliased). the same holds true from secondary accesses to the primary interface in reverse. that is, when the bit is 0, memory and i/o addresses on the secondary interface between the above ranges will be claimed. 2 isa enable (ie) ? r/w. this bit only applies to i/o addresses that are enabled by the i/o base and i/o limit registers and are in the first 64 kb of pci i/o space. if this bit is set, the intel ? 631xesb/ 632xesb i/o controller hub pci bridge will block any forwarding from primary to secondary of i/o transactions addressing the last 768 bytes in each 1-kb block (offsets 100h to 3ffh). 1 serr# enable (see) ? r/w. controls the forwarding of secondary interface serr# assertions on the primary interface. when set, th e pci bridge will forward serr# pin. ? serr# is asserted on the secondary interface. ? this bit is set. ? cmd.see (d30:f0:04 bit 8) is set. 0 parity error response enable (pere) ? r/w. 0 = disable 1 = the intel ? 631xesb/632xesb i/o controller hub pci bridge is enabled for parity error reporting based on parity errors on the pci bus. bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 623 pci-to-pci bridge registers (d30:f0) 18.1.20 spdh ? secondary pci device hiding register (pci-pci ? d30:f0) offset address: 40?41h attribute: r/w, ro default value: 00h size: 16 bits this register allows software to hide the pci devices, either plugged into slots or on the motherboard. 18.1.21 dtc ? delayed transaction control register (pci-pci ? d30:f0) offset address: 44?47h attribute: r/w, ro default value: 00000000h size: 32 bits bit description 15:8 reserved 7 hide device 7 (hd7) ? r/w, ro. same as bit 0 of this register, except for device 7 (ad[23]) 6 hide device 6 (hd6) ? r/w, ro. same as bit 0 of this register, except for device 6 (ad[22]) 5 hide device 5 (hd5) ? r/w, ro. same as bit 0 of this register, except for device 5 (ad[21]) 4 hide device 4 ( hd4) ? r/w, ro. same as bit 0 of this register, except for device 4 (ad[20]) 3 hide device 3 (hd3) ? r/w, ro. same as bit 0 of this register, except for device 3 (ad[19]) 2 hide device 2 (hd2) ? r/w, ro. same as bit 0 of this register, except for device 2 (ad[18]) 1 hide device 1 (hd1) ? r/w, ro. same as bit 0 of this register, except for device 1 (ad[17]) 0 hide device 0 (hd0) ? r/w, ro. 0 = the pci configuration cycles for this slot are not affected. 1 = intel ? 631xesb/632xesb i/o controller hub hides device 0 on the pci bus. this is done by masking the idsel (keeping it low) for configuratio n cycles to that device. since the device will not see its idsel go active, it will not respond to pci configuration cycles and the processor will think the device is not present. ad[16] is used as idsel for device 0. bit description 31 discard delayed transactions (ddt) ? r/w. 0 = logged delayed transactions are kept. 1 = the intel ? 631xesb/632xesb i/o controller hub pci bridge will discard any delayed transactions it has logged. this includes transactions in the pending queue, and any transactions in the active queue, whether in the hard or soft dt state. the prefetchers will be disabled and return to an idle state. notes: if a transaction is running on pci at the time this bit is set, that transaction will continue until either the pci master disconnects (by de-asserting frame#) or the pci bridge disconnects (by asserting stop#). this bit is cleared by the pci bridge when the delayed transaction queues are empty and have returned to an idle state. software sets this bit and polls for its completion 30 block delayed transactions (bdt) ? r/w. 0 = delayed transactions accepted 1 = the intel ? 631xesb/632xesb i/o controller hub pci bridge will not accept incoming transactions which will result in delayed transactions. it will blindly retry these cycles by asserting stop#. all postable cycles (memory writes) will still be accepted. 29: 8 reserved 7: 6 maximum delayed transactions (mdt) ? r/w. controls the maximum number of delayed transactions that the intel ? 631xesb/632xesb i/o controller hub pci bridge will run. encodings are: 00 =) 2 active, 5 pending 01 =) 2 active, no pending 10 =) 1 active, no pending 11 =) reserved
624 intel ? 631xesb/632xesb i/o controller hub datasheet pci-to-pci bridge registers (d30:f0) 18.1.22 bps ? bridge proprietary status register (pci-pci ? d30:f0) offset address: 48?4bh attribute: r/wc, ro default value: 00000000h size: 32 bits 5 reserved 4 auto flush after disconnect enable (afade) ? r/w. 0 = the pci bridge will retain any fetched data until required to discard by producer/consumer rules. 1 = the pci bridge will flush any prefetched data after either the pci master (by de-asserting frame#) or the pci bridge (by asserting stop#) disconnects the pci transfer. 3 never prefetch (np) ? r/w. 0 = prefetch enabled 1 = the intel ? 631xesb/632xesb i/o controller hub will only fetch a single dw and will not enable prefetching, regardless of the command being an memory read (mr), memory read line (mrl), or memory read multiple (mrm). 2 memory read multiple prefetch disable (mrmpd): ? r/w. 0 = mrm commands will fetch multiple cache lines as defined by the prefetch algorithm. 1 = memory read multiple (mrm) commands will fetc h only up to a single, 64-byte aligned cache line. 1 memory read line prefetch disable (mrlpd): ? r/w. 0 = mrl commands will fetch multiple cache lines as defined by the prefetch algorithm. 1 = memory read line (mrl) commands will fetch only up to a single, 64-byte aligned cache line. 0 memory read prefetch disable (mrpd): ? r/w. 0 = mr commands will fetch up to a 64-byte aligned cache line. 1 = memory read (mr) commands will fetch only a single dw. bit description bit description 31:17 reserved 16 perr# assertion detected (pad) ? r/wc. this bit is set by hardware whenever the perr# pin is asserted on the rising edge of pci clock. this incl udes cases in which the chipset is the agent driving perr#. it remains asserted until cleared by software writing a 1 to this location. when enabled by the perr#-to-serr# enable bit (in the bridge policy configuration register), a 1 in this bit can generate an internal serr# and be a source for the nmi logic. this bit can be used by software to determine the source of a system problem. 15:7 reserved 6:4 number of pending transactions (npt) ? ro. this read-only indicator tells debug software how many transactions are in the pend ing queue. possible values are: 000 = no pending transaction 001 = 1 pending transaction 010 = 2 pending transactions 011 = 3 pending transactions 100 = 4 pending transactions 101 = 5 pending transactions 110 - 111 = reserved note: this field is not valid if dtc.mdt (offset 44h:bits 7:6) is any value other than ?00?. 3:2 reserved 1:0 number of active transactions (nat) ? ro. this read-only indicator tells debug software how many transactions are in the active queue. possible values are: 00 = no active transactions 01 = 1 active transaction 10 = 2 active transactions 11 = reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 625 pci-to-pci bridge registers (d30:f0) 18.1.23 bpc ? bridge policy configuration register (pci-pci ? d30:f0) offset address: 4c?4fh attribute: r/w, ro default value: 00000000h size: 32 bits 18.1.24 svcap ? subsystem vendor capability register (pci-pci ? d30:f0) offset address: 50?51h attribute: ro default value: 000dh size: 16 bits 18.1.25 svid ? subsystem vendor ids register (pci-pci ? d30:f0) offset address: 54?57h attribute: r/wo default value: 00000000h size: 32 bits bit description 31:7 reserved 6 perr#-to-serr# enable (pse) ? r/w. when this bit is set, a 1 in the perr# assertion status bit (in the bridge proprietary status register) will resu lt in an internal serr# assertion on the primary side of the bridge (if also enabled by the serr # enable bit in the primary command register). serr# is a source of nmi. 5 secondary discard timer testmode (sdtt) ? r/w. 0 = the secondary discard timer expiration will be defined in bctrl.sdt (d30:f0:3e, bit 9) 1 = the secondary discard timer will expire after 128 pci clocks. 4:3 reserved 2:1 reserved 0 received target abort serr# enable (rtae) ? r/w. when set, the pci bridge will report serr# when psts.rta (d30:f0:06 bit 12) or ssts.rta (d30:f0:1e bit 12) are set, and cmd.see (d30:f0:04 bit 8) is set. bit description 15:8 next capability (next) ? ro. value of 00h indicates this is the last item in the list. 7:0 capability identifier (cid) ? ro. value of 0dh indicates this is a pci bridge subsystem vendor capability. bit description 31:16 subsystem identifier (sid) ? r/wo. indicates the subsystem as identified by the vendor. this field is write once and is locked down until a bridge reset occurs (not the pci bus reset). 15:0 subsystem vendor identifier (svid) ? r/wo. indicates the manufacturer of the subsystem. this field is write once and is locked down unt il a bridge reset occurs (not the pci bus reset).
626 intel ? 631xesb/632xesb i/o controller hub datasheet pci-to-pci bridge registers (d30:f0)
intel ? 631xesb/632xesb i/o controller hub datasheet 627 ac?97 audio controller registers (d30:f2) 19 ac?97 audio controller registers (d30:f2) 19.1 ac?97 audio pci configuration space (audio ? d30:f2) note: registers that are not shown should be treated as reserved. note: internal reset as a result of d3 hot to d0 transition will reset all the core well registers except the following bios programmed registers as bios may not be invoked following the d3-to-d0 transition. all resume well registers will not be reset by the d3 hot to d0 transition. table 19-1. ac ?97 audio pci register address map (audio ? d30:f2) offset mnemonic register name default access 00?01h vid vendor identification 8086h ro 02?03h did device identification 2698h ro 04?05h pcicmd pci command 0000 r/w, ro 06?07h pcists pci status 0280h r/wc, ro 08h rid revision identification see register description ro 09h pi programming interface 00 ro 0ah scc sub class code 01h ro 0bh bcc base class code 04h ro 0eh headtyp header type 00h ro 10?13h nambbar native audio mixer base address 00000001h r/w, ro 14?17h nammbar native audio bus mastering base address 00000001h r/w, ro 18?1bh mmbar mixer base address (mem) 00000000h r/w, ro 1c?1fh mbbar bus master base address (mem) 00000000h r/w, ro 2c?2dh svid subsystem vendor identification 0000h r/wo 2e?2fh sid subsystem identification 0000h r/wo 34h cap_ptr capabilities pointer 50h ro 3ch int_ln interrupt line 00h r/w 3dh int_pn interrupt pin see register description ro 40h pcid programmable codec id 09h r/w 41h cfg configuration 00h r/w 50?51h pid pci power management capability id 0001h ro 52?53h pc pc -power management capabilities c9c2h ro 54?55h pcs power management control and status 0000h r/w, r/wc
628 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) core well registers not reset by the d3 hot to d0 transition: ?offset 2ch ? 2dh ? subsystem vendor id (svid) ?offset 2eh ? 2fh ? subsystem id (sid) ? offset 40h ? programmable codec id (pcid) ? offset 41h ? configuration (cfg) resume well registers will not be reset by the d3 hot to d0 transition: ?offset 54h ? 55h ? power management control and status (pcs) ? bus mastering register: global status register, bits 17:16 ? bus mastering register: sdata_in map register, bits 7:3 19.1.1 vid ? vendor identificati on register (audio ? d30:f2) offset: 00?01h attribute: ro default value: 8086h size: 16 bits lockable: no power well: core 19.1.2 did ? device identificati on register (audio ? d30:f2) offset: 02?03h attribute: ro default value: 2698h size: 16 bits lockable: no power well: core 19.1.3 pcicmd ? pci command re gister (audio ? d30:f2) address offset: 04?05h attribute: r/w, ro default value: 0000h size: 16 bits lockable: no power well: core pcicmd is a 16-bit control register. refer to the pci 2.3 specification for complete details on each bit. bit description 15:0 vendor id. this is a 16-bit value assigned to intel. bit description 15:0 device id. bit description 15:11 reserved. read 0. 10 interrupt disable (id) ? r/w. 0 = the intx# signals may be asserted and msis may be generated. 1 = the ac ?97 controller?s intx# signal will be de-asserted and it may not generate msis. 9 fast back to back enable (fbe) ? ro. not implemented. hardwired to 0. 8 serr# enable (serr_en) ? ro. not implemented. hardwired to 0. 7 wait cycle control (wcc) ? ro. not implemented. hardwired to 0. 6 parity error response (per) ? ro. not implemented. hardwired to 0. 5 vga palette snoop (vps). not implemented. hardwired to 0. 4 memory write and invalidate enable (mwie) ? ro. not implemented. hardwired to 0. 3 special cycle enable (sce). not implemented. hardwired to 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 629 ac?97 audio controller registers (d30:f2) 19.1.4 pcists ? pci status register (audio ? d30:f2) offset: 06?07h attribute: ro, r/wc default value 0280h size: 16 bits lockable: no power well: core pcista is a 16-bit status register. refer to the pci 2.3 specification for complete details on each bit. 2 bus master enable (bme) ? r/w. controls standard pci bus mastering capabilities. 0 = disable 1 = enable 1 memory space enable (mse) ? r/w. enables memory space addresses to the ac?97 audio controller. 0 = disable 1 = enable 0 i/o space enable (iose) ? r/w. this bit controls access to the ac?97 audio controller i/o space registers. 0 = disable (default). 1 = enable access to i/o space. the native pci mode base address register should be programmed prior to setting this bit. note: this bit becomes writable when the iose bit in offset 41h is set. if at any point software decides to clear the iose bit, software must first clear the ios bit. bit description 15 detected parity error (dpe). not implemented. hardwired to 0. 14 signaled system error (sse) ? ro. not implemented. hardwired to 0. 13 master abort status (mas) ? r/wc. software clears this bit by writing a 1 to it. 0 = no master abort generated. 1 = bus master ac '97 2.3 interface function, as a master, generates a master abort. 12 reserved ? ro. will always read as 0. 11 signaled target abort (sta) ? ro. not implemented. hardwired to 0. 10:9 devsel# timing status (dev_sts) ? ro. this 2-bit field reflects the intel ? 631xesb/632xesb i/o controller hub's devsel# timing when performing a positive decode. 01b = medium timing. 8 data parity error detected (dped) ? ro. not implemented. hardwired to 0. 7 fast back to back capable (fb2bc) ? ro. hardwired to 1. this bit indicates that the intel ? 631xesb/632xesb i/o controller hub as a target is capable of fast back-to-back transactions. 6udf supported ? ro. not implemented. hardwired to 0. 5 66 mhz capable (66mhz_cap) ? ro. hardwired to 0. 4 capabilities list (cap_list) ? ro. indicates that the controller contains a capabilities pointer list. the first item is pointed to by looking at configuration offset 34h. 3 interrupt status (is) ? ro. 0 = this bit is 0 after the interrupt is cleared. 1 = this bit is 1 when the intx# is asserted. 2:0 reserved.
630 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) 19.1.5 rid ? revision identification register (audio ? d30:f2) offset: 08h attribute: ro default value: see bit description size: 8 bits lockable: no power well: core 19.1.6 pi ? programming interfac e register (audio ? d30:f2) offset: 09h attribute: ro default value: 00h size: 8 bits lockable: no power well: core 19.1.7 scc ? sub class code register (audio ? d30:f2) address offset: 0ah attribute: ro default value: 01h size: 8 bits lockable: no power well: core 19.1.8 bcc ? base class code register (audio ? d30:f2) address offset: 0bh attribute: ro default value: 04h size: 8 bits lockable: no power well: core 19.1.9 headtyp ? header type register (audio ? d30:f2) address offset: 0eh attribute: ro default value: 00h size: 8 bits lockable: no power well: core bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register bit description 7:0 programming interface ? ro. bit description 7:0 sub class code (scc) ? ro. 01h = audio device bit description 7:0 base class code (bcc) ? ro. 04h = multimedia device bit description 7:0 header type ? ro. hardwired to 00h.
intel ? 631xesb/632xesb i/o controller hub datasheet 631 ac?97 audio controller registers (d30:f2) 19.1.10 nambar ? native audio mixer base address register (audio ? d30:f2) address offset: 10?13h attribute: r/w, ro default value: 00000000h size: 32 bits lockable: no power well: core the native pci mode audio function uses pci base address register #1 to request a contiguous block of i/o space that is to be used for the native audio mixer software interface. the mixer requires 256 bytes of i/o space. native audio mixer and modem codec i/o registers are located from 00h to 7fh and reside in the codec. access to these registers will be decoded by the ac '97 controller and forwarded over the ac-link to the codec. the codec will then respond with the register value. in the case of the split codec implementation, accesses to the different codecs are differentiated by the controller by using address offsets 00h ? 7fh for the primary codec and address offsets 80h ? feh for the secondary codec. note: the tertiary codec cannot be addressed via this address space. the tertiary space is only available from the new mmbar register. this register powers up as read only and only becomes write-able when the iose bit in offset 41h is set. for description of these i/o registers, refer to the audio codec ?97 component specification, version 2.3 . 19.1.11 nabmbar ? native audio bus mastering base address register (audio ? d30:f2) address offset: 14?17h attribute: r/w, ro default value: 00000001h size: 32 bits lockable: no power well: core the native pci mode audio function uses pci base address register #1 to request a contiguous block of i/o space that is to be used for the native mode audio software interface. note: the dma registers for s/pdif* and microphone in 2 cannot be addressed via this address space. these dma functions are only available from the new mbbar register. this register powers up as read only and only becomes write-able when the iose bit in offset 41h is set. bit description 31:16 hardwired to 0?s. 15:8 base address ? r/w. these bits are used in the i/o space decode of the native audio mixer interface registers. the number of upper bits that a device actually implements depends on how much of the address space the device will respond to. for the ac ?97 mixer, the upper 16 bits are hardwired to 0, while bits 15:8 are programmable. this configuration yields a maximum i/o block size of 256 bytes for this base address. 7:1 reserved. read as 0?s. 0 resource type indicator (rte) ? ro. this bit defaults to 0 and changes to 1 if the iose bit is set (d30:f2:offset 41h, bit 0). when 1, this bit indicates a request for i/o space.
632 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) 19.1.12 mmbar ? mixer base address register (audio ? d30:f2) address offset: 18?1bh attribute: r/w, ro default value: 00000000h size: 32 bits lockable: no power well: core this bar creates 512 bytes of memory space to signify the base address of the register space. the lower 256 bytes of this space map to the same registers as the 256-byte i/ o space pointed to by nambar. the lower 384 bytes are divided as follows: ? 128 bytes for the primary codec (offsets 00?7fh) ? 128 bytes for the secondary codec (offsets 80?ffh) ? 128 bytes for the tertiary codec (offsets 100h?17fh). ? 128 bytes of reserved space (offsets 180h?1ffh), returning all 0. 19.1.13 mbbar ? bus master base address register (audio ? d30:f2) address offset: 1c?1fh attribute: r/w, ro default value: 00000000h size: 32 bits lockable: no power well: core this bar creates 256-bytes of memory space to signify the base address of the bus master memory space. the lower 64-bytes of the space pointed to by this register point to the same registers as the mbbar. bit description 31:16 hardwired to 0?s 15:6 base address ? r/w. these bits are used in the i/o space decode of the native audio bus mastering interface registers. the number of upper bits that a device actually implements depends on how much of the address space the device will respond to. for ac '97 bus mastering, the upper 16 bits are hardwired to 0, while bits 15:6 are programmable. this configuration yields a maximum i/o block size of 64 bytes for this base address. 5:1 reserved. read as 0?s. 0 resource type indicator (rte) ? ro. this bit defaults to 0 and changes to 1 if the iose bit is set (d30:f2:offset 41h, bit 0). when 1, this bit indicates a request for i/o space. bit description 31:9 base address ? r/w. this field provides the lower 32-bits of the 512-byte memory offset to use for decoding the primary, secondary, and tertiary codec?s mixer spaces. 8:3 reserved. read as 0?s. 2:1 type ? ro. hardwired to 00b to indicate the base address exists in 32-bit address space 0 resource type indicator (rte) ? ro. hardwired to 0 to indicate a request for memory space. bit description 31:8 base address ? r/w. this field provides the i/o offset to use for decoding the pcm in, pcm out, and microphone 1 dma engines. 7:3 reserved. read as 0?s. 2:1 type ? ro. hardwired to 00b to indicate the base address exists in 32-bit address space 0 resource type indicator (rte) ? ro. hardwired to 0 to indicate a request for memory space.
intel ? 631xesb/632xesb i/o controller hub datasheet 633 ac?97 audio controller registers (d30:f2) 19.1.14 svid ? subsystem vendor identification register (audio ? d30:f2) address offset: 2c?2dh attribute: r/wo default value: 0000h size: 16 bits lockable: no power well: core the svid register, in combination with the subsystem id register (d30:f2:2eh), enable the operating environment to distinguish one audio subsystem from the other(s). this register is implemented as write-once register. once a value is written to it, the value can be read back. any subsequent writes will have no effect. this register is not affected by the d3 hot to d0 transition. 19.1.15 sid ? subsystem identification register (audio ? d30:f2) address offset: 2e?2fh attribute: r/wo default value: 0000h size: 16 bits lockable: no power well: core the sid register, in combination with the subsystem vendor id register (d30:f2:2ch) make it possible for the operating environment to distinguish one audio subsystem from the other(s). this register is implemented as write-once register. once a value is written to it, the value can be read back. any subsequent writes will have no effect. this register is not affected by the d3 hot to d0 transition. 19.1.16 cap_ptr ? capabilities pointer register (audio ? d30:f2) address offset: 34h attribute: ro default value: 50h size: 8 bits lockable: no power well: core this register indicates the offset for the capability pointer. bit description 15:0 subsystem vendor id ? r/wo. bit description 15:0 subsystem id ? r/wo. bit description 7:0 capabilities pointer (cap_ptr) ? ro. this field indicates that the first capability pointer offset is offset 50h
634 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) 19.1.17 int_ln ? interrupt line register (audio ? d30:f2) address offset: 3ch attribute: r/w default value: 00h size: 8 bits lockable: no power well: core this register indicates which pci interrupt line is used for the ac?97 module interrupt. 19.1.18 int_pn ? interrupt pin register (audio ? d30:f2) address offset: 3dh attribute: ro default value: see description size: 8 bits lockable: no power well: core this register indicates which pci interrupt pin is used for the ac '97 module interrupt. the ac '97 interrupt is internally or?d to the interrupt controller with the pirqb# signal. 19.1.19 pcid ? programmable codec identification register (audio ? d30:f2) address offset: 40h attribute: r/w default value: 09h size: 8 bits lockable: no power well: core this register is used to specify the id for the secondary and tertiary codecs for i/o accesses. this register is not affected by the d3hot to d0 transition. the value in this register must be modified only before any ac?97 codec accesses. bit description 7:0 interrupt line (int_ln) ? r/w. this data is not used by the intel ? 631xesb/632xesb i/o controller hub. it is used to communicate to software the interrupt line that the interrupt pin is connected to. bit description 7:0 ac '97 interrupt routing ? ro. this reflects the value of d30ip.aaip in chipset configuration space. bit description 7:4 reserved. 3:2 tertiary codec id (tid ) ? r/w. these bits define the encoded id that is used to address the tertiary codec i/o space. bit 1 is the first bit sent and bit 0 is the second bit sent on acz_sdout during slot 0. 1:0 secondary codec id (scid) ? r/w. these two bits define the encoded id that is used to address the secondary codec i/o space. the two bits are the id that will be placed on slot 0, bits 0 and 1, upon an i/o access to the secondary codec. bit 1 is the first bit sent and bit 0 is the second bit sent on acz_sdout during slot 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 635 ac?97 audio controller registers (d30:f2) 19.1.20 cfg ? configuration register (audio ? d30:f2) address offset: 41h attribute: r/w default value: 00h size: 8 bits lockable: no power well: core this register is used to specify the id for the secondary and tertiary codecs for i/o accesses. this register is not affected by the d3hot to d0 transition. 19.1.21 pid ? pci power management capability identification register (audio ? d30:f2) address offset: 50?51h attribute: ro default value: 0001h size: 16 bits lockable: no power well: core 19.1.22 pc ? power management capabilities register (audio ? d30:f2) address offset: 52?53h attribute: ro default value: c9c2h size: 16 bits lockable: no power well: core this register is not affected by the d3 hot to d0 transition. bit description 7:1 reserved ? ro. 0 i/o space enable (iose) ? r/w. 0 = disable. the ios bit at offset 04h and the i/o space bars at offset 10h and 14h become read only registers. additionally, bit 0 of the i/o bars at offsets 10h and 14h are hardwired to 0 when this bit is 0. this is the default state for the i/o bars. bios must explicitly set this bit to allow a legacy driver to work. 1 = enable. bit description 15:8 next capability (next) ? ro. this field indicates that the next item in the list is at offset 00h. 7:0 capability id (cap) ? ro.this field indicates that this pointer is a message signaled interrupt capability bit description 15:11 pme support ? ro. this field indicates pme# can be generated from all d states. 10:9 reserved. 8:6 auxiliary current ? ro. this field reports 375 ma maximum suspend well current required when in the d3 cold state. 5 device specific initialization (dsi) ? ro. this field indicates that no device-specific initialization is required. 4 reserved ? ro. 3 pme clock (pmec) ? ro. this field indicates that pci clock is not required to generate pme#. 2:0 version (ver) ? ro. this field indicates support for revision 1.1 of the pci power management specification.
636 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) 19.1.23 pcs ? power management control and status register (audio ? d30:f2) address offset: 54?55h attribute: r/w, r/wc default value: 0000h size: 16 bits lockable: no power well: resume 19.2 ac?97 audio i/o space (d30:f2) the ac?97 i/o space includes native audio bus master registers and native mixer registers. for the intel ? 631xesb/632xesb i/o controller hub, the offsets are important as they will determine bits 1:0 of the tag field (codec id). audio mixer i/o space can be accessed as a 16-bit field only since the data packet length on ac-link is a word. any s/w access to the codec will be done as a 16-bit access starting from the first active byte. in case no byte enables are active, the access will be done at the first word of the qwor d that contains the address of this request. bit description 15 pme status (pmes) ? r/wc. this bit resides in the resume well. software clears this bit by writing a 1 to it. 0 = pme# signal not asserted by ac ?97 controller. 1 = this bit is set when the ac?97 controller would normally assert the pme# signal independent of the state of the pme_en bit. 14:9 reserved ? ro. 8 power management event enable (pmee) ? r/w. 0 = disable. 1 = enable. when set, and if corresponding pmes is also set, the ac '97 controller sets the ac97_sts bit in the gpe0_sts register 7:2 reserved ? ro. 1:0 power state (ps) ? r/w. this field is used both to determine the current power state of the ac?97 controller and to set a new power state. the values are: 00 = d0 state 01 = not supported 10 = not supported 11 = d3 hot state when in the d3 hot state, the ac?97 controller?s configuration space is available, but the i/o and memory spaces are not. additionally, interrupts are blocked. if software attempts to write a value of 10b or 01b in to this field, the write operation must complete normally; however, the data is discarded and no state change occurs. table 19-2. intel ? 631xesb/632xesb i/o controller hub audio mixer register configuration (sheet 1 of 2) primary offset (codec id =00) secondary offset (codec id =01) tertiary offset (codec id =10) nambar exposed registers (d30:f2) 00h 80h 100h reset 02h 82h 102h master volume 04h 84h 104h aux out volume 06h 86h 106h mono volume 08h 88h 108h master tone (r & l) 0ah 8ah 10ah pc_beep volume 0ch 8ch 10ch phone volume 0eh 8eh 10eh mic volume 10h 90h 110h line in volume
intel ? 631xesb/632xesb i/o controller hub datasheet 637 ac?97 audio controller registers (d30:f2) note: 1. software should not try to access reserved registers 2. primary codec id cannot be changed. secondary codec id can be changed via bits 1:0 of configuration register 40h. tertiary codec id can be changed via bits 3:2 of configuration register 40h. 3. the tertiary offset is only available through the memory space defined by the mmbar register. the bus master registers are located from offset + 00h to offset + 51h and reside in the ac?97 controller. accesses to these registers do not cause the cycle to be forwarded over the ac-link to the codec. s/w could access these registers as bytes, word, dword or qword quantities, but reads must not cross dword boundaries. in the case of the split codec implementation accesses to the different codecs are differentiated by the controller by using address offsets 00h ? 7fh for the primary codec, address offsets 80h ? ffh for the secondary codec and address offsets 100h ? 17fh for the tertiary codec. the global control (glob_cnt) (d30:f2:2ch) and global status (glob_sta) (d30:f2:30h) registers are aliased to the same global registers in the audio and modem i/o space. therefore a read/write to these registers in either audio or modem i/o space affects the same physical register. 12h 92h 112h cd volume 14h 94h 114h video volume 16h 96h 116h aux in volume 18h 98h 118h pcm out volume 1ah 9ah 11ah record select 1ch 9ch 11ch record gain 1eh 9eh 11eh record gain mic 20h a0h 120h general purpose 22h a2h 122h 3d control 24h a4h 124h ac?97 reserved 26h a6h 126h powerdown ctrl/stat 28h a8h 128h extended audio 2ah aah 12ah extended audio ctrl/stat 2ch ach 12ch pcm front dac rate 2eh aeh 12eh pcm surround dac rate 30h b0h 130h pcm lfe dac rate 32h b2h 132h pcm lr adc rate 34h b4h 134h mic adc rate 36h b6h 136h 6ch vol: c, lfe 38h b8h 138h 6ch vol: l, r surround 3ah bah 13ah s/pdif control 3c?56h bc?d6h 13c?156h intel reserved 58h d8h 158h ac?97 reserved 5ah dah 15ah vendor reserved 7ch fch 17ch vendor id1 7eh feh 17eh vendor id2 table 19-2. intel ? 631xesb/632xesb i/o controller hub audio mixer register configuration (sheet 2 of 2) primary offset (codec id =00) secondary offset (codec id =01) tertiary offset (codec id =10) nambar exposed registers (d30:f2)
638 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) bus mastering registers exist in i/o space and reside in the ac?97 controller. the six channels, pcm in, pcm in 2, pcm out, mic in, mic 2, and s/pdif out, each have their own set of bus mastering registers. the following register descriptions apply to all six channels. the register definition section titles use a generic ?x_? in front of the register to indicate that the register applies to all six channels. the naming prefix convention used in table 19-3 and in the register description i/o address is as follows: pi = pcm in channel po = pcm out channel mc = mic in channel mc2 = mic 2 channel pi2 = pcm in 2 channel sp = s/pdif out channel. table 19-3. native audio bus master control registers (sheet 1 of 2) offset mnemonic name default access 00h pi_bdbar pcm in buffer descriptor list base address 00000000h r/w 04h pi_civ pcm in current index value 00h ro 05h pi_lvi pcm in last valid index 00h r/w 06h pi_sr pcm in status 0001h r/wc, ro 08h pi_picb pcm in position in current buffer 0000h ro 0ah pi_piv pcm in prefetched index value 00h ro 0bh pi_cr pcm in control 00h r/w, r/w (special) 10h po_bdbar pcm out buffer descriptor list base address 00000000h r/w 14h po_civ pcm out current index value 00h ro 15h po_lvi pcm out last valid index 00h r/w 16h po_sr pcm out status 0001h r/wc, ro 18h po_picb pcm in position in current buffer 0000h ro 1ah po_piv pcm out prefetched index value 00h ro 1bh po_cr pcm out control 00h r/w, r/w (special) 20h mc_bdbar mic. in buffer descriptor list base address 00000000h r/w 24h mc_civ mic. in current index value 00h ro 25h mc_lvi mic. in last valid index 00h r/w 26h mc_sr mic. in status 0001h r/wc, ro 28h mc_picb mic. in position in current buffer 0000h ro 2ah mc_piv mic. in prefetched index value 00h ro 2bh mc_cr mic. in control 00h r/w, r/w (special) 2ch glob_cnt global control 00000000h r/w, r/w (special) 30h glob_sta global status see register description r/w, r/wc, ro 34h cas codec access semaphore 00h r/w (special) 40h mc2_bdbar mic. 2 buffer descriptor list base address 00000000h r/w 44h mc2_civ mic. 2 current index value 00h ro 45h mc2_lvi mic. 2 last valid index 00h r/w 46h mc2_sr mic. 2 status 0001h ro, r/wc 48h mc2_picb mic 2 position in current buffer 0000h ro 4ah mc2_piv mic. 2 prefetched index value 00h ro
intel ? 631xesb/632xesb i/o controller hub datasheet 639 ac?97 audio controller registers (d30:f2) note: internal reset as a result of d3 hot to d0 transition will reset all the core well registers except the registers shared with the ac?97 modem (gcr, gsr, casr). all resume well registers will not be reset by the d3 hot to d0 transition. core well registers and bits not reset by the d3 hot to d0 transition: ? offset 2ch ? 2fh ? bits 6:0 global control (glob_cnt) ? offset 30h ? 33h ? bits [29,15,11:10,0] global status (glob_sta) ? offset 34h ? codec access semaphore register (cas) resume well registers and bits will not be reset by the d3 hot to d0 transition: ? offset 30h ? 33h ? bits [17:16] global status (glob_sta) 19.2.1 x_ bdbar ? buffer descriptor base address register (audio ? d30:f2) i/o address: nabmbar + 00h (pibdbar), attribute: r/w nabmbar + 10h (pobdbar), nabmbar + 20h (mcbdbar) mbbar + 40h (mc2bdbar) mbbar + 50h (pi2bdbar) mbbar + 60h (spbar) default value: 00000000h size: 32 bits lockable: no power well: core software can read the register at offset 00h by performing a single 32-bit read from address offset 00h. reads across dword boundaries are not supported. 4bh mc2_cr mic. 2 control 00h r/w, r/w (special) 50h pi2_bdbar pcm in 2 buffer descriptor list base address 00000000h r/w 54h pi2_civ pcm in 2 current index value 00h ro 55h pi2_lvi pcm in 2 last valid index 00h r/w 56h pi2_sr pcm in 2 status 0001h r/wc, ro 58h pi2_picb pcm in 2 position in current buffer 0000h ro 5ah pi2_piv pcm in 2 prefetched index value 00h ro 5bh pi2_cr pcm in 2 control 00h r/w, r/w (special) 60h spbar s/pdif buffer descriptor list base address 00000000h r/w 64h spciv s/pdif current index value 00h ro 65h splvi s/pdif last valid index 00h r/w 66h spsr s/pdif status 0001h r/wc, ro 68h sppicb s/pdif position in current buffer 0000h ro 6ah sppiv s/pdif prefetched index value 00h ro 6bh spcr s/pdif control 00h r/w, r/w (special) 80h sdm sdata_in map 00h r/w, ro table 19-3. native audio bus master control registers (sheet 2 of 2) offset mnemonic name default access
640 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) 19.2.2 x_ civ ? current index value register (audio ? d30:f2) i/o address: nabmbar + 04h (piciv), attribute: ro nabmbar + 14h (pociv), nabmbar + 24h (mcciv) mbbar + 44h (mc2civ) mbbar + 54h (pi2civ) mbbar + 64h (spciv) default value: 00h size: 8 bits lockable: no power well: core software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single, 32-bit read from address offset 04h. software can also read this register individually by doing a single, 8-bit read to offset 04h. note: reads across dword boundaries are not supported. 19.2.3 x_ lvi ? last valid index register (audio ? d30:f2) i/o address: nabmbar + 05h (pilvi), attribute: r/w nabmbar + 15h (polvi), nabmbar + 25h (mclvi) mbbar + 45h (mc2lvi) mbbar + 55h (pi2lvi) mbbar + 65h (splvi) default value: 00h size: 8 bits lockable: no power well: core software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single, 32-bit read from address offset 04h. software can also read this register individually by doing a single, 8-bit read to offset 05h. note: reads across dword boundaries are not supported. bit description 31:3 buffer descriptor base address[31:3] ? r/w. these bits represent address bits 31:3. the data should be aligned on 8-byte boundaries. each buffer descriptor is 8 bytes long and the list can contain a maximum of 32 entries. 2:0 hardwired to 0. bit description 7:5 hardwired to 0 4:0 current index value [4:0] ? ro. these bits represent which buffer descriptor within the list of 32 descriptors is currently being processed. as each de scriptor is processed, th is value is incremented. the value rolls over after it reaches 31. bit description 7:5 hardwired to 0. 4:0 last valid index [4:0] ? r/w. this value represents the last va lid descriptor in the list. this value is updated by the software each time it prepares a new buffer and adds it to the list.
intel ? 631xesb/632xesb i/o controller hub datasheet 641 ac?97 audio controller registers (d30:f2) 19.2.4 x_ sr ? status register (audio ? d30:f2) i/o address: nabmbar + 06h (pisr), attribute: r/wc, ro nabmbar + 16h (posr), nabmbar + 26h (mcsr) mbbar + 46h (mc2sr) mbbar + 56h (pi2sr) mbbar + 66h (spsr) default value: 0001h size: 16 bits lockable: no power well: core software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single, 32-bit read from address offset 04h. software can also read this register individually by doing a single, 16-bit read to offset 06h. reads across dword boundaries are not supported. bit description 15:5 reserved. 4 fifo error (fifoe) ? r/wc. software clears this bit by writing a 1 to it. 0 = no fifo error. 1 = fifo error occurs. pisr register: fifo error indicates a fifo overrun. the fifo pointers don't increment, the incoming data is not written into the fifo, thus is lost. posr register: fifo error indicates a fifo underrun. the sample transmitted in this case should be the last valid sample. the intel ? 631xesb/632xesb i/o controller hub will set the fifoe bit if the under-run or overrun occurs when there are more valid buffers to process. 3 buffer completion interrupt status (bcis) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = set by the hardware after the last sample of a buffer has been processed, and if the interrupt on completion (ioc) bit is set in the command byte of the buffer descriptor. it remains active until cleared by software. 2 last valid buffer completion interrupt (lvbci) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = last valid buffer has been processed. it remains active until cleared by software. this bit indicates the occurrence of the event signified by the last valid buffer being processed. thus this is an event status bit that can be cleared by software once this event has been recognized. this event will cause an interrupt if the enable bit (d30:f2:nabmbar + 0bh, bit 2) in the control register is set. the interrupt is cleared when the software clears this bit. in the case of transmits (pcm out, modem out) this bit is set, after the last valid buffer has been fetched (not after transmitting it). while in the case of receives , this bit is set after the data for the last buffer has been written to memory. 1 current equals last valid (celv) ? ro. 0 = cleared by hardware when controller exists state (that is, until a new value is written to the lvi register.) 1 = current index is equal to the value in the last valid index register (d30:f2:nabmbar + 05h), and the buffer pointed to by the civ has been pr ocessed (that is, after the last valid buffer has been processed). this bit is very similar to bit 2, except this bit reflects the state rather than the event. this bit reflects the state of the controller, and remains set until the controller exits this state. 0 dma controller halted (dch) ? ro. 0 = running. 1 = halted. this could happen because of the start/stop bit being cleared and the dma engines are idle, or it could happen once the controller has processed the last valid buffer.
642 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) 19.2.5 x_ picb ? position in current buffer register (audio ? d30:f2) i/o address: nabmbar + 08h (pipicb), attribute: ro nabmbar + 18h (popicb), nabmbar + 28h (mcpicb) mbbar + 48h (mc2picb) mbbar + 58h (pi2picb) mbbar + 68h (sppicb) default value: 0000h size: 16 bits lockable: no power well: core software can read the registers at the offsets 08h, 0ah, and 0bh by performing a 32-bit read from the address offset 08h. software ca n also read this register individually by doing a single, 16-bit read to offset 08h. reads across dword boundaries are not supported. 19.2.6 x_ piv ? prefetched index value register (audio ? d30:f2) i/o address: nabmbar + 0ah (pipiv), attribute: ro nabmbar + 1ah (popiv), nabmbar + 2ah (mcpiv) mbbar + 4ah (mc2piv) mbbar + 5ah (pi2piv) mbbar + 6ah (sppiv) default value: 00h size: 8 bits lockable: no power well: core software can read the registers at the offsets 08h, 0ah, and 0bh by performing a 32-bit read from the address offset 08h. software ca n also read this register individually by doing a single, 8-bit read to offset 0ah. reads across dword boundaries are not supported bit description 15:0 position in current buffer [15:0] ? ro. these bits represent the number of samples left to be processed in the current buffer. once again, this means, the number of samples not yet read from memory (in the case of reads from memory) or not yet written to memory (in the case of writes to memory), irrespective of the number of samples that have been transmitted/received across ac-link. bit description 7:5 hardwired to 0. 4:0 prefetched index value [4:0] ? ro. these bits represent which buffer descriptor in the list has been prefetched. the bits in this register are also modulo 32 and roll over after they reach 31.
intel ? 631xesb/632xesb i/o controller hub datasheet 643 ac?97 audio controller registers (d30:f2) 19.2.7 x_ cr ? control register (audio ? d30:f2) i/o address: nabmbar + 0bh (picr), attribute: r/w, r/w (special) nabmbar + 1bh (pocr), nabmbar + 2bh (mccr) mbbar + 4bh (mc2cr) mbbar + 5bh (pi2cr) mbbar + 6bh (spcr) default value: 00h size: 8 bits lockable: no power well: core software can read the registers at the offsets 08h, 0ah, and 0bh by performing a 32-bit read from the address offset 08h. software can also read this register individually by doing a single, 8-bit read to offset 0bh. reads across dword boundaries are not supported. bit description 7:5 reserved. 4 interrupt on completion enable (ioce) ? r/w. this bit controls whether or not an interrupt occurs when a buffer completes with the ioc bit set in its descriptor. 0 = disable. interrupt will not occur. 1 = enable. 3 fifo error interrupt enable (feie) ? r/w. this bit controls whether the occurrence of a fifo error will cause an interrupt or not. 0 = disable. bit 4 in the status register will be set, but the interrupt will not occur. 1 = enable. interrupt will occur. 2 last valid buffer interrupt enable (lvbie) ? r/w. this bit controls whether the completion of the last valid buffer will cause an interrupt or not. 0 = disable. bit 2 in the status register will still be set, but the interrupt will not occur. 1 = enable. 1 reset registers (rr) ? r/w (special). 0 = removes reset condition. 1 = contents of all bus master related registers to be reset, except the interrupt enable bits (bit 4,3,2 of this register). software needs to set this bit but need not clear it since the bit is self clearing. this bit must be set only when the run/pause bit (d30:f2:2bh, bit 0) is cleared. setting it when the run bit is set will cause undefined consequences. 0 run/pause bus master (rpbm) ? r/w. 0 = pause bus master operation. this results in all state information being retained (that is, master mode operation can be stopped and then resumed). 1 = run. bus master operation starts.
644 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) 19.2.8 glob_cnt ? global contro l register (audio ? d30:f2) i/o address: nabmbar + 2ch attribute: r/w, r/w (special) default value: 00000000h size: 32 bits lockable: no power well: core bit description 31:30 s/pdif slot map (ssm) ? r/w. if the run/pause bus master bit (bit 0 of offset 2bh) is set, then the value in these bits indicate which slots s/pdif data is transmitted on. software must ensure that the programming here does not conflict with the pcm channels being used. if there is a conflict, unpredictable behavior will result ? the hardware will not check for a conflict. 00 = reserved 01 = slots 7 and 8 10 = slots 6 and 9 11 = slots 10 and 11 29:24 reserved. 23:22 pcm out mode (pom) ? r/w. enables the pcm out channel to use 16 or 20-bit audio on pcm out. this does not affect the microphone of s/pdif dma. when greater than 16 bit audio is used, the data structures are aligned as 32-bits per sample, with the highest order bits representing the data, and the lower order bits as don?t care. 00 = 16 bit audio (default) 01 = 20 bit audio 10 = reserved. if set, indeterminate behavior will result. 11 = reserved. if set, indeterminate behavior will result. 21:20 pcm 4/6 enable ? r/w. this field configures pcm output for 2, 4 or 6 channel mode. 00 = 2-channel mode (default) 01 = 4-channel mode 10 = 6-channel mode 11 = reserved 19:7 reserved. 6 acz_sdin2 interrupt enable ? r/w. 0 = disable. 1 = enable an interrupt to occur when the codec on the acz_sdin2 causes a resume event on the ac-link. note: this bit is not affected by ac ?97 audio function d3 hot to d0 reset. 5 acz_sdin1 interrupt enable ? r/w. 0 = disable. 1 = enable an interrupt to occur when the codec on the acz_sdin1 causes a resume event on the ac-link. note: this bit is not affected by ac ?97 audio function d3 hot to d0 reset. 4 acz_sdin0 interrupt enable ? r/w. 0 = disable. 1 = enable an interrupt to occur when the codec on acz_sdin0 causes a resume event on the ac- link. note: this bit is not affected by ac ?97 audio function d3 hot to d0 reset. 3 ac-link shut off (lso) ? r/w. 0 = normal operation. 1 = controller disables all outputs which will be pulled low by internal pull down resistors. note: this bit is not affected by ac ?97 audio function d3 hot to d0 reset.
intel ? 631xesb/632xesb i/o controller hub datasheet 645 ac?97 audio controller registers (d30:f2) note: reads across dword boundaries are not supported. 19.2.9 glob_sta ? global status register (audio ? d30:f2) i/o address: nabmbar + 30h attribute: ro, r/w, r/wc default value: 00x0xxx01110000000000xxxxx00xxxb size: 32 bits lockable: no power well: core 2 ac?97 warm reset ? r/w (special). 0 = normal operation. 1 = writing a 1 to this bit causes a warm reset to occur on the ac-link. the warm reset will awaken a suspended codec without clearing its internal registers. if software attempts to perform a warm reset while bit_clk is running, the write will be ignored and the bit will not change. this bit is self-clearing (it remains set until the rese t completes and bit_clk is seen on the ac-link, after which it clears itself). note: this bit is not affected by ac ?97 audio function d3 hot to d0 reset. 1 ac?97 cold reset# ? r/w. 0 = writing a 0 to this bit causes a cold reset to occur throughout the ac ?97 circuitry. all data in the controller and the codec will be lost. software needs to clear this bit no sooner than the minimum number of ms have elapsed. 1 = this bit defaults to 0 and hence after reset, the driver needs to set this bit to a 1. the value of this bit is retained after suspends; hence, if this bit is set to a 1 prior to suspending, a cold reset is not generated automatically upon resuming. note: this bit is in the core well and is not affected by ac ?97 audio function d3 hot to d0 reset. 0 gpi interrupt enable (gie) ? r/w. this bit controls whether the change in status of any gpi causes an interrupt. 0 = bit 0 of the global status register is set, but no interrupt is generated. 1 = the change on value of a gpi causes an interrupt and sets bit 0 of the global status register. note: this bit is not affected by ac ?97 audio function d3 hot to d0 reset. bit description bit description 31:30 reserved. 29 acz_sdin2 resume interrupt (s2ri) ? r/wc. this bit indicates a resume event occurred on acz_sdin2. software clears this bit by writing a 1 to it. 0 = resume event did not occur. 1 = resume event occurred. this bit is not affected by d3 hot to d0 reset. 28 acz_sdin2 codec ready (s2cr) ? ro. reflects the state of the codec ready bit on acz_sdin2. bus masters ignore the condition of the codec ready bits, so software must check this bit before starting the bus masters. once the codec is ?ready?, it must never go ?not ready? spontaneously. 0 = not ready. 1 = ready. 27 bit clock stopped (bcs) ? ro. this bit indicates that the bit clock is not running. 0 = transition is found on bit_clk. 1 = intel ? 631xesb/632xesb i/o controller hub detected that there has been no transition on bit_clk for four consecutive pci clocks. 26 s/pdif interrupt (spint) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = s/pdif out channel interrupt status bits have been set. 25 pcm in 2 interrupt (p2int) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the pcm in 2 channel status bits have been set. 24 microphone 2 in interrupt (m2int) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the mic in channel interrupts status bits has been set.
646 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) 23:22 sample capabilities ? ro. this field indicates the capability to support more greater than 16-bit audio. 00 = reserved 01 = 16 and 20-bit audio supported (intel ? 631xesb/632xesb i/o controller hub value) 10 = reserved 11 = reserved 21:20 multichannel capabilities ? ro. this field indicates the capability to support more 4 and 6 channels on pcm out. 19:18 reserved. 17 md3 ? r/w. power down semaphore for modem. this bi t exists in the suspend well and maintains context across power states (except g3). the bit has no hardware function. it is used by software in conjunction with the ad3 bit to coordinate the entry of the two codecs into d3 state. this bit is not affected by d3 hot to d0 reset. 16 ad3 ? r/w. power down semaphore for audio. this bit exists in the suspend well and maintains context across power states (except g3). the bit has no hardware function. it is used by software in conjunction with the md3 bit to coordinate the entry of the two codecs into d3 state. this bit is not affected by d3 hot to d0 reset. 15 read completion status (rcs) ? r/wc. this bit indicates the status of codec read completions. 0 = a codec read completes normally. 1 = a codec read results in a time-out. the bit remains set until being cleared by software writing a 1 to the bit location. this bit is not affected by d3 hot to d0 reset. 14 bit 3 of slot 12 ? ro. display bit 3 of the most recent slot 12. 13 bit 2 of slot 12 ? ro. display bit 2 of the most recent slot 12. 12 bit 1 of slot 12 ? ro. display bit 1 of the most recent slot 12. 11 acz_sdin1 resume interrupt (s1r1) ? r/wc. this bit indicates that a resume event occurred on acz_sdin1. software clears this bit by writing a 1 to it. 0 = resume event did not occur 1 = resume event occurred. this bit is not affected by d3 hot to d0 reset. 10 acz_sdin0 resume interrupt (s0r1) ? r/wc. this bit indicates that a resume event occurred on acz_sdin0. software clears this bit by writing a 1 to it. 0 = resume event did not occur 1 = resume event occurred. this bit is not affected by d3 hot to d0 reset. 9 acz_sdin1 codec ready (s1cr) ? ro. reflects the state of the codec ready bit in acz_sdin1. bus masters ignore the condition of the codec ready bits, so software must check this bit before starting the bus masters. once the codec is ?ready?, it must never go ?not ready? spontaneously. 0 = not ready. 1 = ready. 8 acz_sdin0 codec ready (s0cr) ? ro. reflects the state of the codec ready bit in acz_sdin0. bus masters ignore the condition of the codec ready bits, so software must check this bit before starting the bus masters. once the codec is ?ready?, it must never go ?not ready? spontaneously. 0 = not ready. 1 = ready. 7 microphone in interrupt (mint) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the mic in channel interrupts status bits has been set. 6 pcm out interrupt (point) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the pcm out channel interrupts status bits has been set. 5 pcm in interrupt (piint) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the pcm in channel interrupts status bits has been set. 4:3 reserved bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 647 ac?97 audio controller registers (d30:f2) note: reads across dword boundaries are not supported. 19.2.10 cas ? codec access semaphore register (audio ? d30:f2) i/o address: nabmbar + 34h attribute: r/w (special) default value: 00h size: 8 bits lockable: no power well: core note: reads across dword boundaries are not supported. 19.2.11 sdm ? sdata_in map register (audio ? d30:f2) i/o address: nabmbar + 80h attribute: r/w, ro default value: 00h size: 8 bits lockable: no power well: core 2 modem out interrupt (moint ) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the modem out channel interrupts status bits has been set. 1 modem in interrupt (miint) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the modem in channel interrupts status bits has been set. 0 gpi status change interrupt (gsci) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit reflects the state of bit 0 in slot 12, and is set when bit 0 of slot 12 is set. this indicates that one of the gpi?s changed state, and that the new values are available in slot 12. this bit is not affected by ac ?97 audio function d3 hot to d0 reset. bit description bit description 7:1 reserved. 0 codec access semaphore (cas) ? r/w (special). this bit is read by software to check whether a codec access is currently in progress. 0 = no access in progress. 1 = the act of reading this register sets this bit to 1. the driver that read this bit can then perform an i/o access. once the access is completed, hardware automatically clears this bit. bit description 7:6 pcm in 2, microphone in 2 data in line (di2l) ? r/w. when the se bit is set, these bits indicates which acz_sdin line should be used by the hardware for decoding the input slots for pcm in 2 and microphone in 2. when the se bit is cleared, the value of these bits are irrelevant, and pcm in 2 and mic in 2 dma engines are not available. 00 = acz_sdin0 01 = acz_sdin1 10 = acz_sdin2 11 = reserved 5:4 pcm in 1, microphone in 1 data in line (di1l) ? r/w. when the se bit is set, these bits indicates which acz_sdin line should be used by the hardware for decoding the input slots for pcm in 1 and microphone in 1. when the se bit is clea red, the value of these bits are irrelevant, and the pcm in 1 and mic in 1 engines use the or?d acz_sdin lines. 00 = acz_sdin0 01 = acz_sdin1 10 = acz_sdin2 11 = reserved
648 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 audio controller registers (d30:f2) note: reads across dword boundaries are not supported. 3 steer enable (se) ? r/w. when set, the acz_sdin lines are treated separately and not or?d together before being sent to the dma engines. when cleared, the acz_sdin lines are or?d together, and the ?microphone in 2? and ?pcm in 2? dma engines are not available. 2 reserved ? ro. 1:0 last codec read data input (ldi) ? ro. when a codec register is read, this indicates which acz_sdin the read data returned on. software can use this to determine how the codecs are mapped. the values are: 00 = acz_sdin0 01 = acz_sdin1 10 = acz_sdin2 11 = reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 649 ac?97 modem controller registers (d30:f3) 20 ac?97 modem controller registers (d30:f3) 20.1 ac?97 modem pci configuration space (d30:f3) note: registers that are not shown should be treated as reserved. note: internal reset as a result of d3 hot to d0 transition will reset all the core well registers except the following bios programmed registers as bios may not be invoked following the d3-to-d0 transition. all resume well registers will not be reset by the d3 hot to d0 transition. core well registers not reset by the d3 hot to d0 transition: ? offset 2ch ? 2dh ? subsystem vendor id (svid) ? offset 2eh ? 2fh ? subsystem id (sid) resume well registers will not be reset by the d3 hot to d0 transition: ? offset 54h ? 55h ? power management control and status (pcs) table 20-1. ac ?97 modem pci register address map (modem ? d30:f3) offset mnemonic register default access 00?01h vid vendor identification 8086 ro 02?03h did device identification 2699h ro 04?05h pcicmd pci command 0000h r/w, ro 06?07h pcists pci status 0290h r/wc, ro 08h rid revision identification see register description ro 09h pi programming interface 00h ro 0ah scc sub class code 03h ro 0bh bcc base class code 07h ro 0eh headtyp header type 00h ro 10?13h mmbar modem mixer base address 00000001h r/w, ro 14?17h mbar modem base address 00000001h r/w, ro 2c?2dh svid subsystem vendor identification 0000h r/wo 2e?2fh sid subsystem identification 0000h r/wo 34h cap_ptr capabilities pointer 50h ro 3ch int_ln interrupt line 00h r/w 3dh int_pn interrupt pin see register description ro 50?51h pid pci power management capability id 0001h ro 52?53h pc power management capabilities c9c2h ro 54?55h pcs power management control and status 0000h r/w, r/wc
650 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 modem controller registers (d30:f3) 20.1.1 vid ? vendor identification register (modem ? d30:f3) address offset: 00?01h attribute: ro default value: 8086 size: 16 bits lockable: no power well: core 20.1.2 did ? device identification register (modem ? d30:f3) address offset: 02?03h attribute: ro default value: 2699h size: 16 bits lockable: no power well: core 20.1.3 pcicmd ? pci command register (modem ? d30:f3) address offset: 04?05h attribute: r/w, ro default value: 0000h size: 16 bits lockable: no power well: core pcicmd is a 16-bit control register. refer to the pci local bus specification for complete details on each bit. bit description 15:0 vendor id ? ro bit description 15:0 device id ? ro bit description 15:11 reserved. read 0. 10 interrupt disable (id) ? r/w. 0 = the intx# signals may be asserted and msis may be generated. 1 = the ac ?97 controller?s intx# signal will be de-asserted and it may not generate msis. 9 fast back to back enable (fbe) ? ro. not implemented. hardwired to 0. 8 serr# enable (serr_en) ? ro. not implemented. hardwired to 0. 7 wait cycle control (wcc) ? ro. not implemented. hardwired to 0. 6 parity error response (per) ? ro. not implemented. hardwired to 0. 5 vga palette snoop (vps) ? ro. not implemented. hardwired to 0. 4 memory write and invalidate enable (mwie) ? ro. not implemented. hardwired to 0. 3 special cycle enable (sce) ? ro. not implemented. hardwired to 0. 2 bus master enable (bme) ? r/w. this bit controls standard pci bus mastering capabilities. 0 = disable 1 = enable 1 memory space enable (mse) ? ro. hardwired to 0, ac ?97 does not respond to memory accesses. 0 i/o space enable (iose) ? r/w. this bit controls access to the i/o space registers. 0 = disable access. (default = 0). 1 = enable access to i/o space. the native pci mode base address register should be programmed prior to setting this bit.
intel ? 631xesb/632xesb i/o controller hub datasheet 651 ac?97 modem controller registers (d30:f3) 20.1.4 pcists ? pci status register (modem ? d30:f3) address offset: 06?07h attribute: r/wc, ro default value: 0290h size: 16 bits lockable: no power well: core pcista is a 16-bit status register. refer to the pci local bus specification for complete details on each bit. note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. 20.1.5 rid ? revision identification register (modem ? d30:f3) address offset: 08h attribute: ro default value: see bit description size: 8 bits lockable: no power well: core bit description 15 detected parity error (dpe) ? ro. not implemented. hardwired to 0. 14 signaled system error (sse) ? ro. not implemented. hardwired to 0. 13 master abort status (mas) ? r/wc. 0 = master abort not generated by bus master ac ?97 function. 1 = bus master ac ?97 interface function, as a master, generates a master abort. 12 reserved. read as 0. 11 signaled target abort (sta) ? ro. not implemented. hardwired to 0. 10:9 devsel# timing status (dev_sts) ? ro. this 2-bit field reflects the intel ? 631xesb/632xesb i/o controller hub's devsel# timing parameter. these read only bits indicate the intel ? 631xesb/ 632xesb i/o controller hub's devsel# timing when performing a positive decode. 8 data parity error detected (dped) ? ro. not implemented. hardwired to 0. 7 fast back to back capable (fb2bc) ? ro. hardwired to 1. this bit indicates that the intel ? 631xesb/632xesb i/o controller hub as a target is capable of fast back-to-back transactions. 6 user definable features (udf) ? ro. not implemented. hardwired to 0. 5 66 mhz capable (66mhz_cap) ? ro. hardwired to 0. 4 capabilities list (cap_list) ? ro. indicates that the controller contains a capabilities pointer list. the first item is pointed to by looking at configuration offset 34h. 3 interrupt status (ints) ? ro. 0 = this bit is 0 after the interrupt is cleared. 1 = this bit is 1 when the intx# is asserted. 2:0 reserved bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register
652 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 modem controller registers (d30:f3) 20.1.6 pi ? programming interface register (modem ? d30:f3) address offset: 09h attribute: ro default value: 00h size: 8 bits lockable: no power well: core 20.1.7 scc ? sub class code register (modem ? d30:f3) address offset: 0ah attribute: ro default value: 03h size: 8 bits lockable: no power well: core 20.1.8 bcc ? base class code register (modem ? d30:f3) address offset: 0bh attribute: ro default value: 07h size: 8 bits lockable: no power well: core 20.1.9 headtyp ? header type register (modem ? d30:f3) address offset: 0eh attribute: ro default value: 00h size: 8 bits lockable: no power well: core 20.1.10 mmbar ? modem mixer base address register (modem ? d30:f3) address offset: 10?13h attribute: r/w, ro default value: 00000001h size: 32 bits the native pci mode modem uses pci base address register #1 to request a contiguous block of i/o space that is to be used for the modem mixer software interface. the mixer requires 256 bytes of i/o space. all accesses to the mixer registers are forwarded over the ac-link to the codec where the registers reside. in the case of the split codec implementation accesses to the different codecs are differentiated by the controller by using address offsets 00h ? 7fh for the primary codec and address offsets 80h ? feh for the secondary codec. bit description 7:0 programming interface ? ro. bit description 7:0 sub class code ? ro. 03h = generic modem. bit description 7:0 base class code ? ro. 07h = simple communications controller. bit description 7:0 header type ? ro.
intel ? 631xesb/632xesb i/o controller hub datasheet 653 ac?97 modem controller registers (d30:f3) 20.1.11 mbar ? modem base address register (modem ? d30:f3) address offset: 14?17h attribute: r/w, ro default value: 00000001h size: 32 bits the modem function uses pci base address register #1 to request a contiguous block of i/o space that is to be used for the modem software interface. the modem bus mastering register space requires 128 bytes of i/o space. all modem registers reside in the controller, therefore cycles are not forwarded over the ac-link to the codec. 20.1.12 svid ? subsystem vendor identification register (modem ? d30:f3) address offset: 2c?2dh attribute: r/wo default value: 0000h size: 16 bits lockable: no power well: core the svid register, in combination with the subsystem id register, enable the operating environment to distinguish one audio subsystem from the other(s). this register is implemented as write-once register. once a value is written to it, the value can be read back. any subsequent writes will have no effect. this register is not affected by the d3 hot to d0 transition. bit description 31:16 hardwired to 0?s. 15:8 base address ? r/w. these bits are used in the i/o space decode of the modem interface registers. the number of upper bits that a device actually implements depends on how much of the address space the device will respond to. for the ac ?97 modem, the upper 16 bits are hardwired to 0, while bits 15:8 are programmable. this configuration yields a maximum i/o block size of 256 bytes for this base address. 7:1 reserved. read as 0 0 resource type indicator (rte) ? ro. hardwired to 1indicating a request for i/o space. bit description 31:16 hardwired to 0?s. 15:7 base address ? r/w. these bits are used in the i/o space decode of the modem interface registers. the number of upper bits that a device actually implements depends on how much of the address space the device will respond to. for the ac ?97 modem, the upper 16 bits are hardwired to 0, while bits 15:7 are programmable. this configuration yields a maximum i/o block size of 128 bytes for this base address. 6:1 reserved. read as 0 0 resource type indicator (rte) ? ro. hardwired to 1 indicating a request for i/o space. bit description 15:0 subsystem vendor id ? r/wo.
654 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 modem controller registers (d30:f3) 20.1.13 sid ? subsystem identification register (modem ? d30:f3) address offset: 2e?2fh attribute: r/wo default value: 0000h size: 16 bits lockable: no power well: core the sid register, in combination with the subsystem vendor id register make it possible for the operating environment to distinguish one audio subsystem from another. this register is implemented as write-once register. once a value is written to it, the value can be read back. any subsequent writes will have no effect. this register is not affected by the d3 hot to d0 transition. 20.1.14 cap_ptr ? capabilities pointer register (modem ? d30:f3) address offset: 34h attribute: ro default value: 50h size: 8 bits lockable: no power well: core this register indicates the offset for the capability pointer. 20.1.15 int_ln ? interrupt line register (modem ? d30:f3) address offset: 3ch attribute: r/w default value: 00h size: 8 bits lockable: no power well: core this register indicates which pci interrupt line is used for the ac?97 module interrupt. 20.1.16 int_pin ? interrupt pin register (modem ? d30:f3) address offset: 3dh attribute: ro default value: see description size: 8 bits lockable: no power well: core this register indicates which pci interrupt pin is used for the ac?97 modem interrupt. the ac?97 interrupt is internally or?d to the interrupt controller with the pirqb# signal. bit description 15:0 subsystem id ? r/wo. bit description 7:0 capabilities pointer (cap_ptr) ? ro. this field indicates that the first capability pointer offset is offset 50h bit description 7:0 interrupt line (int_ln) ? r/w. this data is not used by the intel ? 631xesb/632xesb i/o controller hub. it is used to communicate to software the interrupt line that the interrupt pin is connected to. bit description 7:3 reserved 2:0 interrupt pin (int_pn) ? ro. this reflects the value of d30ip.amip in chipset configuration space.
intel ? 631xesb/632xesb i/o controller hub datasheet 655 ac?97 modem controller registers (d30:f3) 20.1.17 pid ? pci power management capability identification register (modem ? d30:f3) address offset: 50h attribute: ro default value: 0001h size: 16 bits lockable: no power well: core 20.1.18 pc ? power management capabilities register (modem ? d30:f3) address offset: 52h attribute: ro default value: c9c2h size: 16 bits lockable: no power well: core 20.1.19 pcs ? power management control and status register (modem ? d30:f3) address offset: 54h attribute: r/w, r/wc default value: 0000h size: 16 bits lockable: no power well: resume this register is not affected by the d3 hot to d0 transition. bit description 15:8 next capability (next) ? ro. this field indicates that this is the last item in the list. 7:0 capability id (cap) ? ro. this field indicates that this pointer is a message signaled interrupt capability. bit description 15:11 pme support ? ro. this field indicates pme# can be generated from all d states. 10:9 reserved. 8:6 auxiliary current ? ro. this field reports 375 ma maximum suspend well current required when in the d3 cold state. 5 device specific initialization (dsi) ? ro. this bit in dicates that no device-specific initialization is required. 4 reserved ? ro. 3 pme clock (pmec) ? ro. this bit indicates that pci clock is not required to generate pme#. 2:0 version (vs) ? ro. this field indicates support for revision 1.1 of the pci power management specification. bit description 15 pme status (pmes) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit is set when the ac?97 controller would normally assert the pme# signal independent of the state of the pme_en bit. this bit resides in the resume well. 14:9 reserved ? ro.
656 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 modem controller registers (d30:f3) 20.2 ac?97 modem i/o space (d30:f3) in the case of the split codec implementation accesses to the modem mixer registers in different codecs are differentiated by the controller by using address offsets 00h ? 7fh for the primary codec and address offsets 80h ? feh for the secondary codec. ta bl e 2 0 - 2 shows the register addresses for the modem mixer registers. notes: 1. registers in italics are for functions not supported by the intel ? 631xesb/632xesb i/o controller hub 8 pme enable (pmee) ? r/w. 0 = disable. 1 = enable. when set, and if corresponding pmes is also set, the ac '97 controller sets the ac97_sts bit in the gpe0_sts register 7:2 reserved ? ro. 1:0 power state (ps) ? r/w. this field is used both to determine the current power state of the ac?97 controller and to set a new power state. the values are: 00 = d0 state 01 = not supported 10 = not supported 11 = d3 hot state when in the d3 hot state, the ac?97 controller?s configuration space is available, but the i/o and memory spaces are not. additionally, interrupts are blocked. if software attempts to write a value of 10b or 01b in to this field, the write operation must complete normally; however, the data is discarded and no state change occurs. bit description table 20-2. intel ? 631xesb/632xesb i/o controller hub modem mixer register configuration register mmbar exposed registers (d30:f3) primary secondary name 00h:38h 80h:b8h intel reserved 3ch bch extended modem id 3eh beh extended modem stat/ctrl 40h c0h line 1 dac/adc rate 42h c2h line 2 dac/adc rate 44h c4h handset dac/adc rate 46h c6h line 1 dac/adc level mute 48h c8h line 2 dac/adc level mute 4ah cah handset dac/adc level mute 4ch cch gpio pin config 4eh ceh gpio polarity/type 50h d0h gpio pin sticky 52h d2h gpio pin wakeup 54h d4h gpio pin status 56h d6h misc. modem afe stat/ctrl 58h d8h ac?97 reserved 5ah dah vendor reserved 7ch fch vendor id1 7eh feh vendor id2
intel ? 631xesb/632xesb i/o controller hub datasheet 657 ac?97 modem controller registers (d30:f3) 2. software should not try to access reserved registers 3. the intel ? 631xesb/632xesb i/o controller hub supports a modem codec connected to acz_sdin[2:0], as long as the codec id is 00 or 01. however, the intel ? 631xesb/632xesb i/o controller hub does not support more than one modem codec. for a complete list of topologies, see your intel ? 631xesb/632xesb i/o controller hub enabled platform design guide. the global control (glob_cnt) and global status (glob_sta) registers are aliased to the same global registers in the audio and modem i/o space. therefore a read/write to these registers in either audio or modem i/o space affects the same physical register. software could access these registers as bytes, word, dword quantities, but reads must not cross dword boundaries. these registers exist in i/o space and reside in the ac?97 controller. the two channels, modem in and modem out, each have their own set of bus mastering registers. the following register descriptions apply to both channels. the naming prefix convention used is as follows: mi = modem in channel mo = modem out channel note: mi = modem in channel; mo = modem out channel note: internal reset as a result of d3 hot to d0 transition will reset all the core well registers except the registers shared with the ac?97 audio controller (gcr, gsr, casr). all resume well registers will not be reset by the d3 hot to d0 transition. core well registers and bits not reset by the d3 hot to d0 transition: ? offset 3ch ? 3fh ? bits [6:0] global control (glob_cnt) ? offset 40h ? 43h ? bits [29,15,11:10] global status (glob_sta) table 20-3. modem registers offset mnemonic name default access 00h?03h mi_bdbar modem in buffer descriptor list base address 00000000h r/w 04h mi_civ modem in current index value 00h ro 05h mi_lvi modem in last valid index 00h r/w 06h?07h mi_sr modem in status 0001h r/wc, ro 08h?09h mi_picb modem in position in current buffer 0000h ro 0ah mi_piv modem in prefetch index value 00h ro 0bh mi_cr modem in control 00h r/w, r/w (special) 10h?13h mo_bdbar modem out buffer descriptor list base address 00000000h r/w 14h mo_civ modem out current index value 00h ro 15h mo_lvi modem out last valid 00h r/w 16h?17h mo_sr modem out status 0001h r/wc, ro 18h?19h mi_picb modem in position in current buffer 0000h ro 1ah mo_piv modem out prefetched index 00h ro 1bh mo_cr modem out control 00h r/w, r/w (special) 3ch?3fh glob_cnt global control 00000000h r/w, r/w (special) 40h?43h glob_sta global status 00300000h ro, r/w, r/wc 44h cas codec access semaphore 00h r/w (special)
658 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 modem controller registers (d30:f3) ? offset 44h ? codec access semaphore register (cas) resume well registers and bits will not be reset by the d3 hot to d0 transition: ?offset 40h ? 43h ? bits [17:16] global status (glob_sta) 20.2.1 x_ bdbar ? buffer descriptor list base address register (modem ? d30:f3) i/o address: mbar + 00h (mibdbar), attribute: r/w mbar + 10h (mobdbar) default value: 00000000h size: 32bits lockable: no power well: core software can read the register at offset 00h by performing a single 32-bit read from address offset 00h. reads across dword boundaries are not supported. 20.2.2 x_ civ ? current index value register (modem ? d30:f3) i/o address: mbar + 04h (miciv), attribute: ro mbar + 14h (mociv), default value: 00h size: 8bits lockable: no power well: core software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single, 32-bit read from address offset 04h. software can also read this register individually by doing a single, 8-bit read to offset 04h. reads across dword boundaries are not supported. 20.2.3 x_ lvi ? last valid index register (modem ? d30:f3) i/o address: mbar + 05h (milvi), attribute: r/w mbar + 15h (molvi) default value: 00h power well: core software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single, 32-bit read from address offset 04h. software can also read this register individually by doing a single, 8-bit read to offset 05h. reads across dword boundaries are not supported. bit description 31:3 buffer descriptor list base address [31:3] ? r/w. these bits represent address bits 31:3. the entries should be aligned on 8-byte boundaries. 2:0 hardwired to 0. bit description 7:5 hardwired to 0. 4:0 current index value [4:0] ? ro. these bits represent which buffer descriptor within the list of 16 descriptors is being processed currently. as each descriptor is processed, this value is incremented. bit description 7:5 hardwired to 0 4:0 last valid index [4:0] ? r/w. these bits indicate the last valid descriptor in the list. this value is updated by the software as it prepares new buffers and adds to the list.
intel ? 631xesb/632xesb i/o controller hub datasheet 659 ac?97 modem controller registers (d30:f3) 20.2.4 x_ sr ? status register (modem ? d30:f3) i/o address: mbar + 06h (misr), attribute: r/wc, ro mbar + 16h (mosr) default value: 0001h size: 16 bits lockable: no power well: core software can read the registers at offsets 04h, 05h and 06h simultaneously by performing a single, 32-bit read from address offset 04h. software can also read this register individually by doing a single, 16-bit read to offset 06h. reads across dword boundaries are not supported. bit description 15:5 reserved 4 fifo error (fifoe) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = fifo error occurs. modem in: fifo error indicates a fifo overrun. the fifo pointers don't increment, the incoming data is not written into the fifo, thereby being lost. modem out: fifo error indicates a fifo underrun. the sample transmitted in this case should be the last valid sample. the intel ? 631xesb/632xesb i/o controller hub will set the fifoe bit if the under-run or overrun occurs when there are more valid buffers to process. 3 buffer completion interrupt status (bcis) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = set by the hardware after the last sample of a buffer has been processed, and if the interrupt on completion (ioc) bit is set in the command byte of the buffer descriptor. remains active until software clears bit. 2 last valid buffer completion interrupt (lvbci) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = set by hardware when last valid buffer has been processed. it remains active until cleared by software. this bit indicates the occurrence of the event signified by the last valid buffer being processed. thus, this is an event status bit that can be cleared by software once this event has been recognized. this event will cause an interrupt if the enable bit in the control register is set. the interrupt is cleared when the software clears this bit. in the case of transmits (pcm out, modem out) this bit is set, after the last valid buffer has been fetched (not after transmitting it). while in the case of receives, this bit is set after the data for the last buffer has been written to memory. 1 current equals last valid (celv) ? ro. 0 = hardware clears when controller exists state (that is, until a new value is written to the lvi register). 1 = current index is equal to the value in the last valid index register, and the buffer pointed to by the civ has been processed (that is, after the last valid buffer has been processed). this bit is very similar to bit 2, except, this bit reflects the state rather than the event. this bit reflects the state of the controller, and remains set until the controller exits this state. 0 dma controller halted (dch) ? ro. 0 = running. 1 = halted. this could happen because of the start/stop bit being cleared and the dma engines are idle, or it could happen once the controller has processed the last valid buffer.
660 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 modem controller registers (d30:f3) 20.2.5 x_ picb ? position in current buffer register (modem ? d30:f3) i/o address: mbar + 08h (mipicb), attribute: ro mbar + 18h (mopicb), default value: 0000h size: 16 bits lockable: no power well: core software can read the registers at the offsets 08h, 0ah, and 0bh by performing a 32-bit read from the address offset 08h. software ca n also read this register individually by doing a single, 16-bit read to offset 08h. reads across dword boundaries are not supported. 20.2.6 x_ piv ? prefetch index value register (modem ? d30:f3) i/o address: mbar + 0ah (mipiv), attribute: ro mbar + 1ah (mopiv) default value: 00h size: 8 bits lockable: no power well: core software can read the registers at the offsets 08h, 0ah, and 0bh by performing a 32-bit read from the address offset 08h. software ca n also read this register individually by doing a single, 8-bit read to offset 0ah. reads across dword boundaries are not supported. 20.2.7 x_ cr ? control register (modem ? d30:f3) i/o address: mbar + 0bh (micr), attribute: r/w, r/w (special) mbar + 1bh (mocr) default value: 00h size: 8 bits lockable: no power well: core software can read the registers at the offsets 08h, 0ah, and 0bh by performing a 32-bit read from the address offset 08h. software ca n also read this register individually by doing a single, 8-bit read to offset 0bh. reads across dword boundaries are not supported. bit description 15:0 position in current buffer[15:0] ? ro. these bits represent the number of samples left to be processed in the current buffer. bit description 7:5 hardwired to 0 4:0 prefetched index value [4:0] ? ro. these bits represent which buffer descriptor in the list has been prefetched.
intel ? 631xesb/632xesb i/o controller hub datasheet 661 ac?97 modem controller registers (d30:f3) 20.2.8 glob_cnt ? global control register (modem ? d30:f3) i/o address: mbar + 3ch attribute: r/w, r/w (special) default value: 00000000h size: 32 bits lockable: no power well: core bit description 7:5 reserved 4 interrupt on completion enable (ioce) ? r/w. this bit controls whether or not an interrupt occurs when a buffer completes with the ioc bit set in its descriptor. 0 = disable 1 = enable 3 fifo error interrupt enable (feie) ? r/w. this bit controls whether the occurrence of a fifo error will cause an interrupt or not. 0 = disable. bit 4 in the status register will be set, but the interrupt will not occur. 1 = enable. interrupt will occur 2 last valid buffer interrupt enable (lvbie) ? r/w. this bit controls whether the completion of the last valid buffer will cause an interrupt or not. 0 = disable. bit 2 in the status register will still be set, but the interrupt will not occur. 1 = enable 1 reset registers (rr) ? r/w (special). 0 = removes reset condition. 1 = contents of all registers to be reset, except the interrupt enable bits (bit 4,3,2 of this register). software needs to set this bit. it must be set only when the run/pause bit is cleared. setting it when the run bit is set will cause undefined consequences. this bit is self-clearing (software needs not clear it). 0 run/pause bus master (rpbm) ? r/w. 0 = pause bus master operation. this results in all state information being retained (that is, master mode operation can be stopped and then resumed). 1 = run. bus master operation starts. bit description 31:6 reserved. 6 acz_sdin2 interrupt enable (s2re) ? r/w. 0 = disable. 1 = enable an interrupt to occur when the codec on the acz_sdin2 causes a resume event on the ac-link. 5 acz_sdin1 resume interrupt enable (s1re) ? r/w. 0 = disable. 1 = enable an interrupt to occur when the codec on the acz_sdin1 causes a resume event on the ac-link. 4 acz_sdin0 resume interrupt enable (s0re) ? r/w. 0 = disable. 1 = enable an interrupt to occur when the codec on acz_sdin0 causes a resume event on the ac- link. 3 ac-link shut off (lso) ? r/w. 0 = normal operation. 1 = controller disables all outputs which will be pulled low by internal pull down resistors.
662 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 modem controller registers (d30:f3) note: reads across dword boundaries are not supported. 20.2.9 glob_sta ? global status register (modem ? d30:f3) i/o address: mbar + 40h attribute: ro, r/w, r/wc default value: 00300000h size: 32 bits lockable: no power well: core 2 ac?97 warm reset ? r/w (special). 0 = normal operation. 1 = writing a 1 to this bit causes a warm reset to occur on the ac-link. the warm reset will awaken a suspended codec without clearing its internal registers. if software attempts to perform a warm reset while bit_clk is running, the write will be ignored and the bit will not change. this bit is self-clearing (it remains set until the reset completes and bit_clk is seen on the ac-link, after which it clears itself). 1 ac?97 cold reset# ? r/w. 0 = writing a 0 to this bit causes a cold reset to occur throughout the ac ?97 circuitry. all data in the controller and the codec will be lost. software needs to clear this bit no sooner than the minimum number of ms have elapsed. 1 = this bit defaults to 0 and hence after reset, the driver needs to set this bit to a 1. the value of this bit is retained after suspends; hence, if this bit is set to a 1 prior to suspending, a cold reset is not generated automatically upon resuming. note: this bit is in the core well. 0 gpi interrupt enable (gie) ? r/w. this bit controls whether the change in status of any gpi causes an interrupt. 0 = bit 0 of the global status register is set, but no interrupt is generated. 1 = the change on value of a gpi causes an interrupt and sets bit 0 of the global status register. note: this bit is cleared by the ac ?97 modem function d3 hot to d0 reset. bit description bit description 31:30 reserved. 29 acz_sdin2 resume interrupt (s2ri) ? r/wc. this bit indicates a resume event occurred on acz_sdin2. 0 = software clears this bit by writing a 1 to it. 1 = resume event occurred. this bit is not affected by d3 hot to d0 reset. 28 acz_sdin2 codec ready (s2cr) ? ro. this bit reflects the state of the codec ready bit on acz_sdin2. bus masters ignore the condition of the codec ready bits, so software must check this bit before starting the bus masters. once the codec is ?ready?, it must never go ?not ready? spontaneously. 0 = not ready. 1 = ready. 27 bit clock stopped (bcs) ? ro. this bit indicates that the bit clock is not running. 0 = transition is found on bit_clk. 1 = intel ? 631xesb/632xesb i/o controller hub detects that there has been no transition on bit_clk for four consecutive pci clocks. 26 s/pdif* interrupt (spint) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = s/pdif out channel interrupt status bits have been set. 25 pcm in 2 interrupt (p2int) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the pcm in 2 channel status bits have been set. 24 microphone 2 in interrupt (m2int) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the mic in channel interrupts status bits has been set.
intel ? 631xesb/632xesb i/o controller hub datasheet 663 ac?97 modem controller registers (d30:f3) 23:22 sample capabilities ? ro. this field indicates the capability to support more greater than 16-bit audio. 00 = reserved 01 = 16 and 20-bit audio supported (intel ? 631xesb/632xesb i/o controller hub value) 10 = reserved 11 = reserved 21:20 multichannel capabilities ? ro. this field indicates the capab ility to support 4 and 6 channels on pcm out. 19:18 reserved. 17 md3 ? r/w. power down semaphore for modem. this bit exists in the suspend well and maintains context across power states (except g3). the bit has no hardware function. it is used by software in conjunction with the ad3 bit to coordinate the entry of the two codecs into d3 state. this bit is not affected by d3 hot to d0 reset. 16 ad3 ? r/w. power down semaphore for audio. this bit exists in the suspend well and maintains context across power states (except g3). the bit has no hardware function. it is used by software in conjunction with the md3 bit to coordinate the entry of the two codecs into d3 state. this bit is not affected by d3 hot to d0 reset. 15 read completion status (rcs) ? r/wc. this bit indicates the status of codec read completions. software clears this bit by writing a 1 to it. 0 = a codec read completes normally. 1 = a codec read results in a time-out. this bit is not affected by d3 hot to d0 reset. 14 bit 3 of slot 12 ? ro. display bit 3 of the most recent slot 12. 13 bit 2 of slot 12 ? ro. display bit 2 of the most recent slot 12. 12 bit 1 of slot 12 ? ro. display bit 1 of the most recent slot 12. 11 acz_sdin1 resume interrupt (s1ri) ? r/wc. this bit indicates that a resume event occurred on acz_sdin1. software clears this bit by writing a 1 to it. 0 = resume event did not occur. 1 = resume event occurred. this bit is not affected by d3 hot to d0 reset. 10 acz_sdin0 resume interrupt (s0ri) ? r/wc. this bit indicates that a resume event occurred on acz_sdin0. software clears this bit by writing a 1 to it. 0 = resume event did not occur. 1 = resume event occurred. this bit is not affected by d3 hot to d0 reset. 9 acz_sdin1 codec ready (s1cr) ? ro. this bit reflects the state of the codec ready bit in acz_sdin1. bus masters ignore the condition of the codec ready bits, so software must check this bit before starting the bus masters. once the codec is ?ready?, it must never go ?not ready? spontaneously. 0 = not ready. 1 = ready. 8 acz_sdin0 codec ready (s0cr) ? ro. this bit reflects the state of the codec ready bit in acz_sdin 0. bus masters ignore the condition of the codec ready bits, so software must check this bit before starting the bus masters. once the codec is ?ready?, it must never go ?not ready? spontaneously. 0 = not ready. 1 = ready. 7 microphone in interrupt (mint) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the mic in channel interrupts status bits has been set. 6 pcm out interrupt (point) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the pcm out channel interrupts status bits has been set. 5 pcm in interrupt (piint) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the pcm in channel interrupts status bits has been set. 4:3 reserved bit description
664 intel ? 631xesb/632xesb i/o controller hub datasheet ac?97 modem controller registers (d30:f3) note: on reads from a codec, the controller will give the codec a maximum of four frames to respond, after which if no resp onse is received, it will re turn a dummy read completion to the processor (with all f?s on the data) and also set the read completion status bit in the global status register. note: reads across dword boundaries are not supported. 20.2.10 cas ? codec access semaphore register (modem ? d30:f3) i/o address: nabmbar + 44h attribute: r/w (special) default value: 00h size: 8 bits lockable: no power well: core note: reads across dword boundaries are not supported. 2 modem out interrupt (moint) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the modem out channel interrupts status bits has been set. 1 modem in interrupt (miint) ? ro. 0 = when the specific status bit is cleared, this bit will be cleared. 1 = one of the modem in channel interrupts status bits has been set. 0 gpi status change interrupt (gsci) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit reflects the state of bit 0 in slot 12, and is set when bit 0 of slot 12 is set. this indicates that one of the gpi?s changed state, and that the new values are available in slot 12. this bit is not affected by ac ?97 audio modem function d3 hot to d0 reset. bit description bit description 7:1 reserved 0 codec access semaphore (cas) ? r/w (special). this bit is read by software to check whether a codec access is currently in progress. 0 = no access in progress. 1 = the act of reading this register sets this bit to 1. the driver that read this bit can then perform an i/o access. once the access is completed, hardware automatically clears this bit.
intel ? 631xesb/632xesb i/o controller hub datasheet 665 lpc interface bridge registers (d31:f0) 21 lpc interface bridge registers (d31:f0) the lpc bridge function of the intel ? 631xesb/632xesb i/o controller hub resides in pci device 31:function 0. this function contains many other functional units, such as dma and interrupt controllers, timers, power management, system management, gpio, rtc, and lpc configuration registers. registers and functions associated with other functional units (ehci, uhci, ide, and so forth) are described in their respective sections. 21.1 pci configuration registers (lpc i/f ? d31:f0) note: address locations that are not shown should be treated as reserved. . table 21-1. lpc interface pci register address map (lpc i/f ? d31:f0) (sheet 1 of 2) offset mnemonic register name default type 00?01h vid vendor identification 8086h ro 02?03h did device identification see register description ro 04?05h pcicmd pci command 0007h r/w, ro 06?07h pcists pci status 0200h r/wc, ro 08h rid revision identification see register description. r/wo 09h pi programming interface 00h ro 0ah scc sub class code 01h ro 0bh bcc base class code 06h ro 0d plt primary latency timer 00h ro 0eh headtyp header type 80h ro 2c?2fh ss sub system identifiers 00000000h r/wo 40?43h pmbase acpi base address 00000001h r/w, ro 44h acpi_cntl acpi control 00h r/w 48?4bh gpiobase gpio base address 00000001h r/w, ro 4c gc gpio control 00h r/w 60?63h pirq[ n ]_rout pirq[a?d] routing control 80h r/w 64h sirq_cntl serial irq control 10h r/w 68?6bh pirq[ n ]_rout pirq[e?h] routing control 80h r/w 80h lpc_i/o_dec i/o decode ranges 0000h r/w 82?83h lpc_en lpc i/f enables 0000h r/w 84?85h gen1_dec lpc i/f generic decode range 1 0000h r/w 88?89h gen2_dec lpc i/f generic decode range 2 0000h r/w a0?cfh power management (see section 21.8.1 ) d0?d3h fwh_sel1 firmware hub select 1 00112233h r/w, ro
666 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.1.1 vid ? vendor identification register (lpc i/f ? d31:f0) offset address: 00?01h attribute: ro default value: 8086h size: 16-bit lockable: no power well: core 21.1.2 did ? device identification register (lpc i/f ? d31:f0) offset address: 02?03h attribute: ro default value: see bits description size: 16-bit lockable: no power well: core 21.1.3 pcicmd ? pci command register (lpc i/f ? d31:f0) offset address: 04?05h attribute: r/w, ro default value: 0007h size: 16-bit lockable: no power well: core d4?d5h fwh_sel2 firmware hub select 2 4567h r/w d8?d9h fwh_dec_en1 firmware hub decode enable 1 ffcfh r/w, ro dch bios_cntl bios control 00h r/wlo, r/w f0h rcba root complex base address 00h r/w table 21-1. lpc interface pci register address map (lpc i/f ? d31:f0) (sheet 2 of 2) offset mnemonic register name default type bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel. intel vid = 8086h bit description 15:0 device id ? ro. this is a 16-bit value assigned to the intel ? 631xesb/632xesb i/o controller hub lpc bridge. the upper 12-bits of this register are hardwired to 267h. the lower 4 bits are controlled by the fdcomp fuse. refer to ta b l e 2 - 3 3 bit description 15:10 reserved 9 fast back to back enable (fbe) ? ro. hardwired to 0. 8 serr# enable (serr_en) ? r/w. the lpc bridge generates serr# if this bit is set. 7 wait cycle control (wcc) ? ro. hardwired to 0. 6 parity error response enable (pere) ? r/w. 0 = no action is taken when detecting a parity error. 1 = enables the intel ? 631xesb/632xesb i/o controller hub lpc bridge to respond to parity errors detected on backbone interface. 5 vga palette snoop (vps) ? ro. hardwired to 0. 4 memory write and invalidate enable (mwie) ? ro. hardwired to 0. 3 special cycle enable (sce) ? ro. hardwired to 0. 2 bus master enable (bme) ? ro. bus masters cannot be disabled. 1 memory space enable (mse) ? ro. memory space cannot be disabled on lpc. 0 i/o space enable (iose) ? ro. i/o space cannot be disabled on lpc.
intel ? 631xesb/632xesb i/o controller hub datasheet 667 lpc interface bridge registers (d31:f0) 21.1.4 pcists ? pci status register (lpc i/f ? d31:f0) offset address: 06?07h attribute: ro, r/wc default value: 0200h size: 16-bit lockable: no power well: core note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. 21.1.5 rid ? revision identification register (lpc i/f ? d31:f0) offset address: 08h attribute: r/wo default value: see bit description size: 8 bits bios must always read this register and write the value back before passing control to the os. once written, additional writes to th is register will not have any affect until a core-well reset occurs. bit description 15 detected parity error (dpe) ? r/wc. set when the lpc bridge detects a parity error on the internal backbone. set even if the pcicmd.pere bit (d31:f0:04, bit 6) is 0 0 = parity error not detected. 1 = parity error detected. 14 signaled system error (sse) ? r/wc. set when the lpc bridge signals a system error to the internal serr# logic. 13 master abort status (rma) ? r/wc. 0 = unsupported request status not received. 1 = the bridge received a completion with unsupported request status from the backbone. 12 received target abort (rta) ? r/wc. 0 = completion abort not received. 1 = completion with completion abort received from the backbone. 11 signaled target abort (sta) ? r/wc. 0 = target abort not generated on the backbone. 1 = lpc bridge generated a completion packet with target abort status on the backbone. 10:9 devsel# timing status (dev_sts) ? ro. 01 = medium timing. 8 data parity error detected (dped) ? r/wc. 0 = all conditions listed below not met. 1 = set when all three of the following conditions are met: ? lpc bridge receives a completion packet from the backbone from a previous request, ? parity error has been detected (d31:f0:06, bit 15) ? pcicmd.pere bit (d31:f0:04, bit 6) is set. 7 fast back to back capable (fbc): reserved ? bit has no meaning on the internal backbone. 6 reserved. 5 66 mhz capable (66mhz_cap) ? reserved ? bit has no meaning on internal backbone. 4 capabilities list (clist) ? ro. no capability list exist on the lpc bridge. 3 interrupt status (is) ? ro. the lpc bridge does not generate interrupts. 2:0 reserved. bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register
668 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.1.6 pi ? programming interface register (lpc i/f ? d31:f0) offset address: 09h attribute: ro default value: 00h size: 8 bits 21.1.7 scc ? sub class code register (lpc i/f ? d31:f0) offset address: 0ah attribute: ro default value: 01h size: 8 bits 21.1.8 bcc ? base class code re gister (lpc i/f ? d31:f0) offset address: 0bh attribute: ro default value: 06h size: 8 bits 21.1.9 plt ? primary latency timer register (lpc i/f ? d31:f0) offset address: 0dh attribute: ro default value: 00h size: 8 bits 21.1.10 headtyp ? header type register (lpc i/f ? d31:f0) offset address: 0eh attribute: ro default value: 80h size: 8 bits 21.1.11 ss ? sub system identifiers register (lpc i/f ? d31:f0) offset address: 2c?2fh attribute: r/wo default value: 00000000h size: 32 bits this register is initialized to logic 0 by the assertion of pltrst#. this register can be written only once after pltrst# de-assertion. bit description 7:0 programming interface ? ro. bit description 7:0 sub class code ? ro. 8-bit value that indicates the ca tegory of bridge for the lpc bridge. 01h = pci-to-isa bridge. bit description 7:0 base class code ? ro. 8-bit value that indicates the type of device for the lpc bridge. 06h = bridge device. bit description 7:3 master latency count (mlc) ? reserved. 2:0 reserved. bit description 7 multi-function device ? ro. this bit is 1 to indicate a multi-function device. 6:0 header type ? ro. this 7-bit field identifies the header layout of the configuration space.
intel ? 631xesb/632xesb i/o controller hub datasheet 669 lpc interface bridge registers (d31:f0) 21.1.12 pmbase ? acpi base address register (lpc i/f ? d31:f0) offset address: 40?43h attribute: r/w, ro default value: 00000001h size: 32 bit lockable: no usage: acpi, legacy power well: core sets base address for acpi i/o registers, gpio registers and tco i/o registers. these registers can be mapped anywhere in the 64-k i/o space on 128-byte boundaries. 21.1.13 acpi_cntl ? acpi control register (lpc i/f ? d31:f0) offset address: 44h attribute: r/w default value: 00h size: 8 bit lockable: no usage: acpi, legacy power well: core bit description 31:16 subsystem id (ssid) ? r/wo this is written by bios. no hardware action taken on this value. 15:0 subsystem vendor id (ssvid) ? r/wo this is written by bios. no hardware action taken on this value. bit description 31:16 reserved 15:7 base address ? r/w. this field provides 128 bytes of i/o space for acpi, gpio, and tco logic. this is placed on a 128-byte boundary. 6:1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 to indicate i/o space. bit description 7 acpi enable (acpi_en) ? r/w. 0 = disable. 1 = decode of the i/o range pointed to by the acpi base register is enabled, and the acpi power management function is enabled. 6:3 reserved 2:0 sci irq select (sci_irq_sel) ? r/w. specifies on which irq the sci will internally appear. if not using the apic, the sci must be routed to irq9?11, and that interrupt is not sharable with the serirq stream, but is shareable with other pci interrupts. if using the apic, the sci can also be mapped to irq20?23, and can be shared with other interrupts. bitssci map 000irq9 001irq10 010 irq11 011reserved 100irq20 (only available if apic enabled) 101irq21 (only available if apic enabled) 110irq22 (only available if apic enabled) 111irq23 (only available if apic enabled) note: when the tco interrupt is mapped to apic interrupts 9, 10 or 11, the signal is in fact active high. when the tco interrupt is mapped to irq 20, 21, 22, or 23, the signal is active low and can be shared with pci interrupts that ma y be mapped to those same signals (irqs).
670 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.1.14 gpiobase ? gpio base address register (lpc i/f ? d31:f0) offset address: 48?4bh attribute: r/w, ro default value: 00000001h size: 32 bit 21.1.15 gc ? gpio control register (lpc i/f ? d31:f0) offset address: 4ch attribute: r/w default value: 00h size: 8 bit 21.1.16 pirq[n]_rout ? pirq[a,b ,c,d] routing control register (lpc i/f ? d31:f0) offset address: pirqa ? 60h, pirqb ? 61h, attribute: r/w pirqc ? 62h, pirqd ? 63h default value: 80h size: 8 bit lockable: no power well: core bit description 31:16 reserved. always 0. 15:6 base address (ba) ? r/w. provides the 64 bytes of i/o space for gpio. 5:1 reserved. always 0. 0 ro. hardwired to 1 to indicate i/o space. bit description 7:5 reserved. 4 gpio enable (en) ? r/w. this bit enables/disables decode of the i/o range pointed to by the gpio base address register (d31:f0:48h) and enables the gpio function. 0 = disable. 1 = enable. 3:0 reserved. bit description 7 interrupt routing enable (irqen) ? r/w. 0 = the corresponding pirq is routed to one of the isa-compatible interrupts specified in bits[3:0]. 1 = the pirq is not routed to the 8259. note: bios must program this bit to 0 during post for any of the pirqs that are being used. the value of this bit may subsequently be changed by the os when setting up for i/o apic interrupt delivery mode. 6:4 reserved 3:0 irq routing ? r/w. (isa compatible.) 0000 = reserved 1000 = reserved 0001 = reserved 1001 = irq9 0010 = reserved 1010 = irq10 0011 = irq3 1011 = irq11 0100 = irq4 1100 = irq12 0101 = irq5 1101 = reserved 0110 = irq6 1110 = irq14 0111 = irq7 1111 = irq15
intel ? 631xesb/632xesb i/o controller hub datasheet 671 lpc interface bridge registers (d31:f0) 21.1.17 sirq_cntl ? serial irq control register (lpc i/f ? d31:f0) offset address: 64h attribute: r/w, ro default value: 10h size: 8 bit lockable: no power well: core 21.1.18 pirq[n]_rout ? pirq[e,f,g,h] routing control register (lpc i/f ? d31:f0) offset address: pirqe ? 68h, pirqf ? 69h, attribute: r/w pirqg ? 6ah, pirqh ? 6bh default value: 80h size: 8 bit lockable: no power well: core bit description 7 serial irq enable (sirqen) ? r/w. 0 = the buffer is input only an d internally serirq will be a 1. 1 = serial irqs will be recognized. the serirq pin will be configured as serirq. 6 serial irq mode select (sirqmd) ? r/w. 0 = the serial irq machine will be in quiet mode. 1 = the serial irq machine will be in continuous mode. note: for systems using quiet mode, this bit should be set to 1 (continuous mode) for at least one frame after coming out of reset before switching back to quiet mode. failure to do so will result in the intel ? 631xesb/632xesb i/o controller hub not recognizing serirq interrupts. 5:2 serial irq frame size (sirqsz) ? ro. fixed field that indicates the size of the serirq frame as 21 frames. 1:0 start frame pulse width (sfpw) ? r/w. this is the number of pci clocks that the serirq pin will be driven low by the serial irq machine to signal a start frame. in continuous mode, the intel ? 631xesb/632xesb i/o controller hub will drive the start frame for the number of clocks specified. in quiet mode, the intel ? 631xesb/632xesb i/o controller hub will drive the start frame for the number of clocks specified minus one, as the first clock was driven by the peripheral. 00 = 4 clocks 01 = 6 clocks 10 = 8 clocks 11 = reserved bit description 7 interrupt routing enable (irqen) ? r/w. 0 = the corresponding pirq is routed to one of the isa-compatible interrupts specified in bits[3:0]. 1 = the pirq is not routed to the 8259. note: bios must program this bit to 0 during post for any of the pirqs that are being used. the value of this bit may subsequently be changed by the os when setting up for i/o apic interrupt delivery mode. 6:4 reserved 3:0 irq routing ? r/w. (isa compatible.) 0000 = reserved 1000 = reserved 0001 = reserved 1001 = irq9 0010 = reserved 1010 = irq10 0011 = irq3 1011 = irq11 0100 = irq4 1100 = irq12 0101 = irq5 1101 = reserved 0110 = irq6 1110 = irq14 0111 = irq7 1111 = irq15
672 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.1.19 lpc_i/o_dec ? i/o decode ranges register (lpc i/f ? d31:f0) offset address: 80h attribute: r/w default value: 0000h size: 16 bit 21.1.20 lpc_en ? lpc i/f enables register (lpc i/f ? d31:f0) offset address: 82h ? 83h attribute: r/w default value: 0000h size: 16 bit power well: core bit description 15:13 reserved 12 fdd decode range ? r/w. determines which range to decode for the fdd port 0 = 3f0h ? 3f5h, 3f7h (primary) 1 = 370h ? 375h, 377h (secondary) 11:10 reserved 9:8 lpt decode range ? r/w. this field determines which range to decode for the lpt port. 00 = 378h ? 37fh and 778h ? 77fh 01 = 278h ? 27fh (port 279h is read only) and 678h ? 67fh 10 = 3bch ?3beh and 7bch ? 7beh 11 = reserved 7 reserved 6:4 comb decode range ? r/w. this field determines which range to decode for the comb port. 000 = 3f8h ? 3ffh (com1) 001 = 2f8h ? 2ffh (com2) 010 = 220h ? 227h 011 = 228h ? 22fh 100 = 238h ? 23fh 101 = 2e8h ? 2efh (com4) 110 = 338h ? 33fh 111 = 3e8h ? 3efh (com3) 3 reserved 2:0 coma decode range ? r/w. this field determines which range to decode for the coma port. 000 = 3f8h ? 3ffh (com1) 001 = 2f8h ? 2ffh (com2) 010 = 220h ? 227h 011 = 228h ? 22fh 100 = 238h ? 23fh 101 = 2e8h ? 2efh (com4) 110 = 338h ? 33fh 111 = 3e8h ? 3efh (com3) bit description 15:14 reserved 13 cnf2_lpc_en ? r/w. microcontroller enable # 2. 0 = disable. 1 = enables the decoding of the i/o locations 4eh and 4fh to the lpc interface. this range is used for a microcontroller. 12 cnf1_lpc_en ? r/w. super i/o enable. 0 = disable. 1 = enables the decoding of the i/o locations 2eh and 2fh to the lpc interface. this range is used for super i/o devices.
intel ? 631xesb/632xesb i/o controller hub datasheet 673 lpc interface bridge registers (d31:f0) 21.1.21 gen1_dec ? lpc i/f generic decode range 1 register (lpc i/f ? d31:f0) offset address: 84h ? 85h attribute: r/w default value: 0000h size: 16 bit power well: core 11 mc_lpc_en ? r/w. microcontroller enable # 1. 0 = disable. 1 = enables the decoding of the i/o locations 62h and 66h to the lpc interface. this range is used for a microcontroller. 10 kbc_lpc_en ? r/w. keyboard enable. 0 = disable. 1 = enables the decoding of the i/o locations 60h and 64h to the lpc interface. this range is used for a microcontroller. 9 gameh_lpc_en ? r/w. high gameport enable 0 = disable. 1 = enables the decoding of the i/o locations 208h to 20fh to the lpc interface. this range is used for a gameport. 8 gamel_lpc_en ? r/w. low gameport enable 0 = disable. 1 = enables the decoding of the i/o locations 200h to 207h to the lpc interface. this range is used for a gameport. 7:4 reserved 3 fdd_lpc_en ? r/w. floppy drive enable 0 = disable. 1 = enables the decoding of the fdd range to the lpc interface. this range is selected in the lpc_fdd/lpt decode range register (d31:f0:80h, bit 12). 2 lpt_lpc_en ? r/w. parallel port enable 0 = disable. 1 = enables the decoding of the lptrange to the lpc interface. this range is selected in the lpc_fdd/lpt decode range register (d31:f0:80h, bit 9:8). 1 comb_lpc_en ? r/w. com port b enable 0 = disable. 1 = enables the decoding of the comb range to the lpc interface. this range is selected in the lpc_com decode range register (d31:f0:80h, bits 6:4). 0 coma_lpc_en ? r/w. com port a enable 0 = disable. 1 = enables the decoding of the coma range to the lpc interface. this range is selected in the lpc_com decode range register (d31:f0:80h, bits 3:2). bit description bit description 15:7 generic i/o decode range 1 base address (gen1_base) ? r/w. this address is aligned on a 128-byte boundary, and must have address lines 31:16 as 0. note: this generic decode is for i/o addresses only, not memory addresses. the size of this range is 128 bytes. 6:1 reserved 0 generic decode range 1 enable (gen1_en) ? r/w. 0 = disable. 1 = enable the gen1 i/o range to be forwarded to the lpc i/f
674 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.1.22 gen2_dec ? lpc i/f generic decode range 2 register (lpc i/f ? d31:f0) offset address: 88h ? 89h attribute: r/w default value: 0000h size: 16 bit power well: core 21.1.23 fwh_sel1 ? firmware hub select 1 register (lpc i/f ? d31:f0) offset address: d0h?d3h attribute: r/w, ro default value: 00112233h size: 32 bits bit description 15:4 generic i/o decode range 2 base address (gen2_base) ? r/w. this address is aligned on a 16-byte boundary, and must have address lines 31:16 as 0. note: this generic decode is for i/o addresses only, not memory addresses. the size of this range is 16 bytes. 3:1 reserved. read as 0. 0 generic i/o decode range 2 enable (gen2_en) ? r/w. 0 = disable. 1 = accesses to the gen2 i/o range will be forwarded to the lpc i/f bit description 31:28 fwh_f8_idsel ? ro. idsel for two 512-kb firmware hub memory ranges and one 128-kb memory range. this field is fixed at 0000. the idsel programmed in this field addresses the following memory ranges: fff8 0000h ? ffff ffffh ffb8 0000h ? ffbf ffffh 000e 0000h ? 000f ffffh 27:24 fwh_f0_idsel ? r/w. idsel for two 512-kb firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: fff0 0000h ? fff7 ffffh ffb0 0000h ? ffb7 ffffh 23:20 fwh_e8_idsel ? r/w. idsel for two 512-kb firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: ffe8 0000h ? ffef ffffh ffa8 0000h ? ffaf ffffh 19:16 fwh_e0_idsel ? r/w. idsel for two 512-kb firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: ffe0 0000h ? ffe7 ffffh ffa0 0000h ? ffa7 ffffh 15:12 fwh_d8_idsel ? r/w. idsel for two 512-kb firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: ffd8 0000h ? ffdf ffffh ff98 0000h ? ff9f ffffh 11:8 fwh_d0_idsel ? r/w. idsel for two 512-kb firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: ffd0 0000h ? ffd7 ffffh ff90 0000h ? ff97 ffffh 7:4 fwh_c8_idsel ? r/w. idsel for two 512-kb firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: ffc8 0000h ? ffcf ffffh ff88 0000h ? ff8f ffffh 3:0 fwh_c0_idsel ? r/w. idsel for two 512-kb firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: ffc0 0000h ? ffc7 ffffh ff80 0000h ? ff87 ffffh
intel ? 631xesb/632xesb i/o controller hub datasheet 675 lpc interface bridge registers (d31:f0) 21.1.24 fwh_sel2 ? firmware hub select 2 register (lpc i/f ? d31:f0) offset address: d4h?d5h attribute: r/w default value: 4567h size: 16 bits 21.1.25 fwh_dec_en1 ? firmware hub decode enable register (lpc i/f ? d31:f0) offset address: d8h?d9h attribute: r/w, ro default value: ffcfh size: 16 bits bit description 15:12 fwh_70_idsel ? r/w. idsel for two, 1-m firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: ff70 0000h ? ff7f ffffh ff30 0000h ? ff3f ffffh 11:8 fwh_60_idsel ? r/w. idsel for two, 1-m firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: ff60 0000h ? ff6f ffffh ff20 0000h ? ff2f ffffh 7:4 fwh_50_idsel ? r/w. idsel for two, 1-m firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: ff50 0000h ? ff5f ffffh ff10 0000h ? ff1f ffffh 3:0 fwh_40_idsel ? r/w. idsel for two, 1-m firmware hub memory ranges. the idsel programmed in this field addresses the following memory ranges: ff40 0000h ? ff4f ffffh ff00 0000h ? ff0f ffffh bit description 15 fwh_f8_en ? ro. this bit enables decoding two 512-kb firmware hub memory ranges, and one 128-kb memory range. 0 = disable 1 = enable the following ranges for the firmware hub fff80000h ? ffffffffh ffb80000h ? ffbfffffh 000e0000h ? 000fffffh 14 fwh_f0_en ? r/w. this bit enables decoding two 512-kb firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub: fff00000h ? fff7ffffh ffb00000h ? ffb7ffffh 13 fwh_e8_en ? r/w. this bit enables decoding two 512-kb firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub: ffe80000h ? ffeffffh ffa80000h ? ffafffffh 12 fwh_e0_en ? r/w. this bit enables decoding two 512-kb firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub: ffe00000h ? ffe7ffffh ffa00000h ? ffa7ffffh 11 fwh_d8_en ? r/w. this bit enables decoding two 512-kb firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub ffd80000h ? ffdfffffh ff980000h ? ff9fffffh
676 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 10 fwh_d0_en ? r/w. this bit enables decoding two 512-kb firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub ffd00000h ? ffd7ffffh ff900000h ? ff97ffffh 9 fwh_c8_en ? r/w. this bit enables decoding two 512-kb firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub ffc80000h ? ffcfffffh ff880000h ? ff8fffffh 8 fwh_c0_en ? r/w. this bit enables decoding two 512-kb firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub ffc00000h ? ffc7ffffh ff800000h ? ff87ffffh 7 fwh_legacy_f_en ? r/w. this enables the decoding of the legacy 128-k range at f0000h ? fffffh. 0 = disable. 1 = enable the following legacy ranges for the firmware hub f0000h ? fffffh 6 fwh_legacy_e_en ? r/w. this enables the decoding of the legacy 128-k range at e0000h ? effffh. 0 = disable. 1 = enable the following legacy ranges for the firmware hub e0000h ? effffh 5:4 reserved 3 fwh_70_en ? r/w. enables decoding two 1-m firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub ff70 0000h ? ff7f ffffh ff30 0000h ? ff3f ffffh 2 fwh_60_en ? r/w. enables decoding two 1-m firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub ff60 0000h ? ff6f ffffh ff20 0000h ? ff2f ffffh 1 fwh_50_en ? r/w. enables decoding two 1-m firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub ff50 0000h ? ff5f ffffh ff10 0000h ? ff1f ffffh 0 fwh_40_en ? r/w. enables decoding two 1-m firmware hub memory ranges. 0 = disable. 1 = enable the following ranges for the firmware hub ff40 0000h ? ff4f ffffh ff00 0000h ? ff0f ffffh bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 677 lpc interface bridge registers (d31:f0) 21.1.26 bios_cntl ? bios control register (lpc i/f ? d31:f0) offset address: dch attribute: r/wlo, r/w default value: 00h size: 8 bit lockable: no power well: core 21.1.27 rcba ? root complex base address register (lpc i/f ? d31:f0) offset address: f0h attribute: r/w default value: 00h size: 8 bit 21.2 dma i/o registers (lpc i/f ? d31:f0) bit description 7:2 reserved 1 bios lock enable (ble) ? r/wlo. 0 = setting the bioswe will not cause smis. 1 = enables setting the bioswe bit to cause smis. once set, this bit can only be cleared by a pltrst# 0 bios write enable (bioswe) ? r/w. 0 = only read cycles result in firmware hub i/f cycles. 1 = access to the bios space is enabled for both read and write cycles. when this bit is written from a 0 to a 1 and bios lock enable (ble) is also set, an smi# is generated. this ensures that only smi code can update bios. bit description 31:14 base address (ba) ? r/w. base address for the root complex register block decode range. this address is aligned on a 16-kb boundary. 13:1 reserved 0 enable (en) ? r/w. when set, enables the range specified in ba to be claimed as the root complex register block. table 21-2. dma registers (sheet 1 of 2) port alias register name default type 00h 10h channel 0 dma base & current address undefined r/w 01h 11h channel 0 dma base & current count undefined r/w 02h 12h channel 1 dma base & current address undefined r/w 03h 13h channel 1 dma base & current count undefined r/w 04h 14h channel 2 dma base & current address undefined r/w 05h 15h channel 2 dma base & current count undefined r/w 06h 16h channel 3 dma base & current address undefined r/w 07h 17h channel 3 dma base & current count undefined r/w 08h 18h channel 0?3 dma command undefined wo channel 0?3 dma status undefined ro 0ah 1ah channel 0?3 dma write single mask 000001xxb wo 0bh 1bh channel 0?3 dma channel mode 000000xxb wo
678 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 0ch 1ch channel 0?3 dma clear byte pointer undefined wo 0dh 1dh channel 0?3 dma master clear undefined wo 0eh 1eh channel 0?3 dma clear mask undefined wo 0fh 1fh channel 0?3 dma write all mask 0fh r/w 80h 90h reserved page undefined r/w 81h 91h channel 2 dma memory low page undefined r/w 82h ? channel 3 dma memory low page undefined r/w 83h 93h channel 1 dma memory low page undefined r/w 84h?86h 94h?96h reserved pages undefined r/w 87h 97h channel 0 dma memory low page undefined r/w 88h 98h reserved page undefined r/w 89h 99h channel 6 dma memory low page undefined r/w 8ah 9ah channel 7 dma memory low page undefined r/w 8bh 9bh channel 5 dma memory low page undefined r/w 8ch?8eh 9ch?9eh reserved page undefined r/w 8fh 9fh refresh low page undefined r/w c0h c1h channel 4 dma base & current address undefined r/w c2h c3h channel 4 dma base & current count undefined r/w c4h c5h channel 5 dma base & current address undefined r/w c6h c7h channel 5 dma base & current count undefined r/w c8h c9h channel 6 dma base & current address undefined r/w cah cbh channel 6 dma base & current count undefined r/w cch cdh channel 7 dma base & current address undefined r/w ceh cfh channel 7 dma base & current count undefined r/w d0h d1h channel 4?7 dma command undefined wo channel 4?7 dma status undefined ro d4h d5h channel 4?7 dma write single mask 000001xxb wo d6h d7h channel 4?7 dma channel mode 000000xxb wo d8h d9h channel 4?7 dma clear byte pointer undefined wo dah dbh channel 4?7 dma master clear undefined wo dch ddh channel 4?7 dma clear mask undefined wo deh dfh channel 4?7 dma write all mask 0fh r/w table 21-2. dma registers (sheet 2 of 2) port alias register name default type
intel ? 631xesb/632xesb i/o controller hub datasheet 679 lpc interface bridge registers (d31:f0) 21.2.1 dmabase_ca ? dma base and current address registers (lpc i/f ? d31:f0) i/o address: ch. #0 = 00h; ch. #1 = 02h attribute:r/w ch. #2 = 04h; ch. #3 = 06h size:16 bit (per channel), ch. #5 = c4h ch. #6 = c8h but accessed in two 8-bit ch. #7 = cch; quantities default value: undef lockable: no power well:core 21.2.2 dmabase_cc ? dma base and current count registers (lpc i/f ? d31:f0) i/o address: ch. #0 = 01h; ch. #1 = 03h attribute:r/w ch. #2 = 05h; ch. #3 = 07h size:16-bit (per channel), ch. #5 = c6h; ch. #6 = cah but accessed in two 8-bit ch. #7 = ceh; quantities default value: undefined lockable: no power well:core bit description 15:0 base and current address ? r/w. this register determines the address for the transfers to be performed. the address specified points to two separate registers. on writes, the value is stored in the base address register and copied to the current address register. on reads, the value is returned from the current address register. the address increments/decrements in the current address register after each transfer, depending on the mode of the transfer. if the channel is in auto-initialize mode, the current address register will be reloaded from the base address register after a terminal count is generated. for transfers to/from a 16-bit slave (channel?s 5-7), the address is shifted left one bit location. bit 15 will be shifted into bit 16. the register is accessed in 8 bit quantities. the byte is pointed to by the current byte pointer flip/ flop. before accessing an address register, the byte pointer flip/flop should be cleared to ensure that the low byte is accessed first bit description 15:0 base and current count ? r/w. this register determines the number of transfers to be performed. the address specified points to two separate registers. on writes, the value is stored in the base count register and copied to the current count register. on reads, the value is returned from the current count register. the actual number of transfers is one more than the number programmed in the base count register (that is, programming a count of 4h result s in 5 transfers). the count is decrements in the current count register after each transfer. when the value in the register rolls from zero to ffffh, a terminal count is generated. if the channel is in auto-initialize mode, the current count register will be reloaded from the base count register after a terminal count is generated. for transfers to/from an 8-bit slave (channels 0?3), the count register indicates the number of bytes to be transferred. for transfers to/from a 16-bit slave (channels 5?7), the count register indicates the number of words to be transferred. the register is accessed in 8 bit quantities. the byte is pointed to by the current byte pointer flip/ flop. before accessing a count register, the byte pointer flip/flop should be cleared to ensure that the low byte is accessed first.
680 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.2.3 dmamem_lp ? dma memory low page registers (lpc i/f ? d31:f0) i/o address: ch. #0 = 87h; ch. #1 = 83h ch. #2 = 81h; ch. #3 = 82h ch. #5 = 8bh; ch. #6 = 89h ch. #7 = 8ah; attribute:r/w default value: undefined size:8-bit lockable: no power well:core 21.2.4 dmacmd ? dma command re gister (lpc i/f ? d31:f0) i/o address: ch. #0?3 = 08h; ch. #4?7 = d0h attribute: wo default value: undefined size: 8-bit lockable: no power well: core bit description 7:0 dma low page (isa address bits [23:16]) ? r/w. this register works in conjunction with the dma controller's current address register to define the complete 24-bit address for the dma channel. this register remains static throughout the dma transfer. bit 16 of this register is ignored when in 16 bit i/o count by words mode as it is replaced by the bit 15 shifted out from the current address register. bit description 7:5 reserved. must be 0. 4 dma group arbitration priority ? wo. each channel group is individually assigned either fixed or rotating arbitration priority. at part reset, each group is initialized in fixed priority. 0 = fixed priority to the channel group 1 = rotating priority to the group. 3 reserved. must be 0. 2 dma channel group enable ? wo. both channel groups are enabled following part reset. 0 = enable the dma channel group. 1 = disable. disabling channel group 4?7 also disables channel group 0?3, which is cascaded through channel 4. 1:0 reserved. must be 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 681 lpc interface bridge registers (d31:f0) 21.2.5 dmasta ? dma status register (lpc i/f ? d31:f0) i/o address: ch. #0?3 = 08h; ch. #4?7 = d0h attribute: ro default value: undefined size: 8-bit lockable: no power well: core 21.2.6 dma_wrsmsk ? dma write single mask register (lpc i/f ? d31:f0) i/o address: ch. #0?3 = 0ah; ch. #4?7 = d4h attribute: wo default value: 0000 01xx size: 8-bit lockable: no power well: core bit description 7:4 channel request status ? ro. when a valid dma request is pending for a channel, the corresponding bit is set to 1. when a dma request is not pending for a particular channel, the corresponding bit is set to 0. the source of the dreq may be hardware or a software request. note that channel 4 is the cascade channel, so the requ est status of channel 4 is a logical or of the request status for channels 0 through 3. 4 = channel 0 5 = channel 1 (5) 6 = channel 2 (6) 7 = channel 3 (7) 3:0 channel terminal count status ? ro. when a channel reaches terminal count (tc), its status bit is set to 1. if tc has not been reached, the status bit is set to 0. channel 4 is programmed for cascade, so the tc bit response for channel 4 is irrelevant: 0 = channel 0 1 = channel 1 (5) 2 = channel 2 (6) 3 = channel 3 (7) bit description 7:3 reserved. must be 0. 2 channel mask select ? wo. 0 = enable dreq for the selected channel. the channel is selected through bits [1:0]. therefore, only one channel can be masked / unmasked at a time. 1 = disable dreq for the selected channel. 1:0 dma channel select ? wo. these bits select the dma channel mode register to program. 00 = channel 0 (4) 01 = channel 1 (5) 10 = channel 2 (6) 11 = channel 3 (7)
682 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.2.7 dmach_mode ? dma channel mode register (lpc i/f ? d31:f0) i/o address: ch. #0?3 = 0bh; ch. #4?7 = d6h attribute: wo default value: 0000 00xx size: 8-bit lockable: no power well: core 21.2.8 dma clear byte pointer register (lpc i/f ? d31:f0) i/o address: ch. #0?3 = 0ch; ch. #4?7 = d8h attribute: wo default value: xxxx xxxx size: 8-bit lockable: no power well: core bit description 7:6 dma transfer mode ? wo. each dma channel can be programmed in one of four different modes: 00 = demand mode 01 = single mode 10 = reserved 11 = cascade mode 5 address increment/decrement select ? wo. this bit controls address increment/decrement during dma transfers. 0 = address increment. (default after part reset or master clear) 1 = address decrement. 4 autoinitialize enable ? wo. 0 = autoinitialize feature is disabled and dma transfers terminate on a terminal count. a part reset or master clear disables autoinitialization. 1 = dma restores the base address and count registers to the current registers following a terminal count (tc). 3:2 dma transfer type ? wo. these bits represent the direction of the dma transfer. when the channel is programmed for cascade mode, (bits[7:6] = 11) the transfer type is irrelevant. 00 = verify ? no i/o or memory strobes generated 01 = write ? data transferred from the i/o devices to memory 10 = read ? data transferred from memory to the i/o device 11 = illegal 1:0 dma channel select ? wo. these bits select the dma channel mode register that will be written by bits [7:2]. 00 = channel 0 (4) 01 = channel 1 (5) 10 = channel 2 (6) 11 = channel 3 (7) bit description 7:0 clear byte pointer ? wo. no specific pattern. command enabled with a write to the i/o port address. writing to this register initializes the byte pointer flip/flop to a known state. it clears the internal latch used to address the upper or lower byte of the 16-bit address and word count registers. the latch is also cleared by part reset and by the master clear command. this command precedes the first access to a 16-bit dma controller register. the first access to a 16-bit register will then access the significant byte, and the second access automatically accesses the most significant byte.
intel ? 631xesb/632xesb i/o controller hub datasheet 683 lpc interface bridge registers (d31:f0) 21.2.9 dma master clear register (lpc i/f ? d31:f0) i/o address: ch. #0?3 = 0dh; ch. #4?7 = dah attribute: wo default value: xxxx xxxx size: 8-bit 21.2.10 dma_clmsk ? dma clear mask register (lpc i/f ? d31:f0) i/o address: ch. #0?3 = 0eh; ch. #4?7 = dch attribute: wo default value: xxxx xxxx size: 8-bit lockable: no power well: core 21.2.11 dma_wrmsk ? dma write all mask register (lpc i/f ? d31:f0) i/o address: ch. #0?3 = 0fh; ch. #4?7 = deh attribute: r/w default value: 0000 1111 size: 8-bit lockable: no power well: core 21.3 timer i/o registers (lpc i/f ? d31:f0) bit description 7:0 master clear ? wo. no specific pattern. enabled with a write to the port. this has the same effect as the hardware reset. the command, status, request, and byte pointer flip/flop registers are cleared and the mask register is set. bit description 7:0 clear mask register ? wo. no specific pattern. command enabled with a write to the port. bit description 7:4 reserved. must be 0. 3:0 channel mask bits ? r/w. this register permits all four channels to be simultaneously enabled/ disabled instead of enabling/disabling each channe l individually, as is the case with the mask register ? write single mask bit. in addition, this register has a read path to allow the status of the channel mask bits to be read. a channel's mask bit is automatically set to 1 when the current byte/ word count register reaches terminal count (unl ess the channel is in auto-initialization mode). setting the bit(s) to a 1 disables the corresponding dreq(s). setting the bit(s) to a 0 enables the corresponding dreq(s). bits [3:0] are set to 1 upon part reset or master clear. when read, bits [3:0] indicate the dma channel [3:0] ([7:4]) mask status. bit 0 = channel 0 (4)1 = masked, 0 = not masked bit 1 = channel 1 (5)1 = masked, 0 = not masked bit 2 = channel 2 (6)1 = masked, 0 = not masked bit 3 = channel 3 (7)1 = masked, 0 = not masked note: disabling channel 4 also disables channels 0?3 due to the cascade of channel?s 0 ? 3 through channel 4. port aliases register name default value type 40h 50h counter 0 interval time status byte format 0xxxxxxxb ro counter 0 counter access port undefined r/w 41h 51h counter 1 interval time status byte format 0xxxxxxxb ro counter 1 counter access port undefined r/w
684 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.3.1 tcw ? timer control word register (lpc i/f ? d31:f0) i/o address: 43h attribute: wo default value: all bits undefined size: 8 bits this register is programmed prior to any counter being accessed to specify counter modes. following part reset, the control words for each register are undefined and each counter output is 0. each timer must be programmed to bring it into a known state. there are two special commands that can be issued to the counters through this register, the read back command and the counter latch command. when these commands are chosen, several bits within this register are redefined. these register formats are described below: rdbk_cmd ? read back command (lpc i/f ? d31:f0) the read back command is used to determine the count value, programmed mode, and current states of the out pin and null count flag of the selected counter or counters. status and/or count may be latched in any or all of the counters by selecting the counter during the register write. the count and status remain latched until read, and further latch commands are ignored until the count is read. both count and status of the selected counters may be latched simultaneously by setting both bit 5 and bit 4 to 0. if both are latched, the first read operation from that counter returns the latched 42h 52h counter 2 interval time status byte format 0xxxxxxxb ro counter 2 counter access port undefined r/w 43h 53h timer control word undefined wo timer control word register xxxxxxx0b wo counter latch command x0h wo port aliases register name default value type bit description 7:6 counter select ? wo. the counter selection bits select the counter the control word acts upon as shown below. the read back command is selected when bits[7:6] are both 1. 00 = counter 0 select 01 = counter 1 select 10 = counter 2 select 11 = read back command 5:4 read/write select ? wo. these bits are the read/write control bits. the actual counter programming is done through the counter port (40h for counter 0, 41h for counter 1, and 42h for counter 2). 00 = counter latch command 01 = read/write least significant byte (lsb) 10 = read/write most significant byte (msb) 11 = read/write lsb then msb 3:1 counter mode selection ? wo. these bits select one of six possible modes of operation for the selected counter. 000 = mode 0out signal on end of count (=0) 001 = mode 1hardware retriggerable one-shot x10 = mode 2rate generator (divide by n counter) x11 = mode 3square wave output 100 = mode 4software triggered strobe 101 = mode 5hardware triggered strobe 0 binary/bcd countdown select ? wo. 0 = binary countdown is used. the largest possible binary count is 2 16 1 = binary coded decimal (bcd) count is used. the largest possible bcd count is 10 4
intel ? 631xesb/632xesb i/o controller hub datasheet 685 lpc interface bridge registers (d31:f0) status. the next one or two reads, depending on whether the counter is programmed for one or two byte counts, returns the latched count. subsequent reads return an unlatched count. ltch_cmd ? counter latch co mmand (lpc i/f ? d31:f0) the counter latch command latches the current count value. this command is used to insure that the count read from the counter is accurate. the count value is then read from each counter's count register through the counter ports access ports register (40h for counter 0, 41h for counter 1, and 42h for counter 2). the count must be read according to the programmed format, that is, if the counter is programmed for two byte counts, two bytes must be read. the two bytes do not have to be read one right after the other (read, write, or programming operations for other counters may be inserted between the reads). if a counter is latched once and then latched again before the count is read, the second counter latch command is ignored. 21.3.2 sbyte_fmt ? interval timer status byte format register (lpc i/f ? d31:f0) i/o address: counter 0 = 40h, counter 1 = 41h, attribute: ro counter 2 = 42h size: 8 bits per counter default value: bits[6:0] undefined, bit 7=0 each counter's status byte can be read following a read back command. if latch status is chosen (bit 4=0, read back command) as a read back option for a given counter, the next read from the counter's counter access ports register (40h for counter 0, 41h for counter 1, and 42h for counter 2) returns the status byte. the status byte returns the following: bit description 7:6 read back command. must be 11 to select the read back command 5 latch count of selected counters. 0 = current count value of the selected counters will be latched 1 = current count will not be latched 4 latch status of selected counters. 0 = status of the selected counters will be latched 1 = status will not be latched 3 counter 2 select. 1 = counter 2 count and/or status will be latched 2 counter 1 select. 1 = counter 1 count and/or status will be latched 1 counter 0 select. 1 = counter 0 count and/or status will be latched. 0 reserved. must be 0. bit description 7:6 counter selection. these bits select the counter for latching. if ?11? is written, then the write is interpreted as a read back command. 00 = counter 0 01 = counter 1 10 = counter 2 5:4 counter latch command. 00 = selects the counter latch command. 3:0 reserved. must be 0.
686 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.3.3 counter access ports register (lpc i/f ? d31:f0) i/o address: counter 0 ? 40h, counter 1 ? 41h, attribute: r/w counter 2 ? 42h default value: all bits undefined size: 8 bit 21.4 8259 interrupt contro ller (pic) registers (lpc i/f ? d31:f0) 21.4.1 interrupt controller i/o map (lpc i/f ? d31:f0) the interrupt controller registers are locate d at 20h and 21h for the master controller (irq 0 ? 7), and at a0h and a1h for the slave controller (irq 8 ? 13). these registers have multiple functions, depending upon the data written to them. table 21-3 shows the different register possibilities for each address. bit description 7 counter out pin state ? ro. 0 = out pin of the counter is also a 0 1 = out pin of the counter is also a 1 6 count register status ? ro. this bit indicates when the last count written to the count register (cr) has been loaded into the counting element (c e). the exact time this happens depends on the counter mode, but until the count is loaded into the counting element (ce), the count value will be incorrect. 0 = count has been transferred from cr to ce and is available for reading. 1 = null count. count has not been transferred from cr to ce and is not yet available for reading. 5:4 read/write selection status ? ro. these reflect the read/write selection made through bits[5:4] of the control register. the binary codes returned during the status read match the codes used to program the counter read/write selection. 00 = counter latch command 01 = read/write least significant byte (lsb) 10 = read/write most significant byte (msb) 11 = read/write lsb then msb 3:1 mode selection status ? ro. these bits return the counter mode programming. the binary code returned matches the code used to program the counter mode, as listed under the bit function above. 000 = mode 0out signal on end of count (=0) 001 = mode 1hardware retriggerable one-shot x10 = mode 2rate generator (divide by n counter) x11 = mode 3square wave output 100 = mode 4software triggered strobe 101 = mode 5hardware triggered strobe 0 countdown type status ? ro. this bit reflects the current countdown type. 0 = binary countdown 1 = binary coded decimal (bcd) countdown. bit description 7:0 counter port ? r/w. each counter port address is used to program the 16-bit count register. the order of programming, either lsb only, msb only, or lsb then msb, is defined with the interval counter control register at port 43h. the counter port is also used to read the current count from the count register, and return the status of the counter programming following a read back command.
intel ? 631xesb/632xesb i/o controller hub datasheet 687 lpc interface bridge registers (d31:f0) note: refer to note addressing active-low interrupt sources in 8259 interrupt controllers section ( section 5.10 ). 21.4.2 icw1 ? initialization command word 1 register (lpc i/f ? d31:f0) offset address: master controller ? 20h attribute: wo slave controller ? a0h size: 8 bit /controller default value: all bits undefined a write to initialization command word 1 starts the interrupt controller initialization sequence, during which the following occurs: 1. the interrupt mask register is cleared. 2. irq7 input is assigned priority 7. 3. the slave mode address is set to 7. 4. special mask mode is cleared and status read is set to irr. once this write occurs, the controller expects writes to icw2, icw3, and icw4 to complete the initialization sequence. table 21-3. pic registers (lpc i/f ? d31:f0) port aliases register name default value type 20h 24h, 28h, 2ch, 30h, 34h, 38h, 3ch master pic icw1 init. cmd word 1 undefined wo master pic ocw2 op ctrl word 2 001xxxxxb wo master pic ocw3 op ctrl word 3 x01xxx10b wo 21h 25h, 29h, 2dh, 31h, 35h, 39h, 3dh master pic icw2 init. cmd word 2 undefined wo master pic icw3 init. cmd word 3 undefined wo master pic icw4 init. cmd word 4 01h wo master pic ocw1 op ctrl word 1 00h r/w a0h a4h, a8h, ach, b0h, b4h, b8h, bch slave pic icw1 init. cmd word 1 undefined wo slave pic ocw2 op ctrl word 2 001xxxxxb wo slave pic ocw3 op ctrl word 3 x01xxx10b wo a1h a5h, a9h, adh, b1h, b5h, b9h, bdh slave pic icw2 init. cmd word 2 undefined wo slave pic icw3 init. cmd word 3 undefined wo slave pic icw4 init. cmd word 4 01h wo slave pic ocw1 op ctrl word 1 00h r/w 4d0h ? master pic edge/level triggered 00h r/w 4d1h ? slave pic edge/level triggered 00h r/w bit description 7:5 icw/ocw select ? wo. these bits are mcs-85 specific, and not needed. 000 = should be programmed to ?000? 4 icw/ocw select ? wo. 1 = this bit must be a 1 to select icw1 and enable the icw2, icw3, and icw4 sequence. 3 edge/level bank select (ltim) ? wo. disabled. replaced by the edge/level triggered control registers (elcr, d31:f0:4d0h, d31:f0:4d1h).
688 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.4.3 icw2 ? initialization command word 2 register (lpc i/f ? d31:f0) offset address: master controller ? 21h attribute: wo slave controller ? a1h size: 8 bit /controller default value: all bits undefined icw2 is used to initialize the interrupt controller with the five most significant bits of the interrupt vector address. the value programmed for bits[7:3] is used by the processor to define the base address in the interrupt vector table for the interrupt routines associated with each irq on the controller. typical isa icw2 values are 08h for the master controller and 70h for the slave controller. 21.4.4 icw3 ? master controller initialization command word 3 register (lpc i/f ? d31:f0) offset address: 21h attribute: wo default value: all bits undefined size: 8 bits 2adi ? wo. 0 = ignored for the intel ? 631xesb/632xesb i/o controller hub. should be programmed to 0. 1 single or cascade (sngl) ? wo. 0 = must be programmed to a 0 to indicate two controllers operating in cascade mode. 0 icw4 write required (ic4) ? wo. 1 = this bit must be programmed to a 1 to indicate that icw4 needs to be programmed. bit description bit description 7:3 interrupt vector base address ? wo. bits [7:3] define the base address in the interrupt vector table for the interrupt routines associated with each interrupt request level input. 2:0 interrupt request level ? wo. when writing icw2, these bits should all be 0. during an interrupt acknowledge cycle, these bits are programmed by the interrupt controller with the interrupt to be serviced. this is combined with bits [7:3] to form the interrupt vector driven onto the data bus during the second inta# cycle. the code is a three bit binary code: code master interrupt slave interrupt 000 irq0 irq8 001 irq1 irq9 010 irq2 irq10 011 irq3 irq11 100 irq4 irq12 101 irq5 irq13 110 irq6 irq14 111 irq7 irq15 bit description 7:3 0 = these bits must be programmed to zero. 2 cascaded interrupt controller irq connection ? wo. this bit indicates that the slave controller is cascaded on irq2. when irq8#?irq15 is asserted, it goes through the slave controller?s priority resolver. the slave controller?s intr output onto irq2. irq2 then goes through the master controller?s priority solver. if it wins, the intr signal is asserted to the processor, and the returning interrupt acknowledge returns the interrupt vector for the slave controller. 1 = this bit must always be programmed to a 1. 1:0 0 = these bits must be programmed to 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 689 lpc interface bridge registers (d31:f0) 21.4.5 icw3 ? slave controller initialization command word 3 register (lpc i/f ? d31:f0) offset address: a1h attribute: wo default value: all bits undefined size: 8 bits 21.4.6 icw4 ? initialization command word 4 register (lpc i/f ? d31:f0) offset address: master controller ? 021h attribute: wo slave controller ? 0a1h size: 8 bits default value: 01h 21.4.7 ocw1 ? operational control word 1 (interrupt mask) register (lpc i/f ? d31:f0) offset address: master controller ? 021h attribute: r/w slave controller ? 0a1h size: 8 bits default value: 00h bit description 7:3 0 = these bits must be programmed to zero. 2:0 slave identification code ? wo. these bits are compared against the slave identification code broadcast by the master controller from the trailin g edge of the first internal inta# pulse to the trailing edge of the second internal inta# pulse. these bits must be programmed to 02h to match the code broadcast by the master controller. when 02h is broadcast by the master controller during the inta# sequence, the slave controller assumes responsibility for broadcasting the interrupt vector. bit description 7:5 0 = these bits must be programmed to zero. 4 special fully nested mode (sfnm) ? wo. 0 = should normally be disabled by writing a 0 to this bit. 1 = special fully nested mode is programmed. 3 buffered mode (buf) ? wo. 0 = must be programmed to 0 for the intel ? 631xesb/632xesb i/o controller hub. this is non- buffered mode. 2 master/slave in buffered mode ? wo. not used. 0 = should always be programmed to 0. 1 automatic end of interrupt (aeoi) ? wo. 0 = this bit should normally be programmed to 0. this is the normal end of interrupt. 1 = automatic end of interrupt (aeoi) mode is programmed. 0 microprocessor mode ? wo. 1 = must be programmed to 1 to indicate th at the controller is operating in an intel architecture-based system. bit description 7:0 interrupt request mask ? r/w. when a 1 is written to any bit in this register, the corresponding irq line is masked. when a 0 is written to any bit in this register, the corresponding irq mask bit is cleared, and interrupt requests will again be accepted by the controller. masking irq2 on the master controller will also mask the interrupt requests from the slave controller.
690 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.4.8 ocw2 ? operational control word 2 register (lpc i/f ? d31:f0) offset address: master controller ? 020h attribute: wo slave controller ? 0a0h size: 8 bits default value: bit[4:0]=undefined, bit[7:5]=001 following a part reset or icw initialization, the controller enters the fully nested mode of operation. non-specific eoi without rotation is the default. both rotation mode and specific eoi mode are disabled following initialization. 21.4.9 ocw3 ? operational control word 3 register (lpc i/f ? d31:f0) offset address: master controller ? 020h attribute: wo slave controller ? 0a0h size: 8 bits default value: bit[6,0]=0, bit[7,4:2]=undefined, bit[5,1]=1 bit description 7:5 rotate and eoi codes (r, sl, eoi) ? wo. these three bits control the rotate and end of interrupt modes and combinations of the two. 000 = rotate in auto eoi mode (clear) 001 = non-specific eoi command 010 = no operation 011 = *specific eoi command 100 = rotate in auto eoi mode (set) 101 = rotate on non-specific eoi command 110 = *set priority command 111 = *rotate on specific eoi command *l0 ? l2 are used 4:3 ocw2 select ? wo. when selecting ocw2, bits 4:3 = ?00? 2:0 interrupt level select (l2, l1, l0) ? wo. l2, l1, and l0 determine the interrupt level acted upon when the sl bit is active. a simple binary code, outlined below, selects the channel for the command to act upon. when the sl bit is inactive, these bits do not have a defined function; programming l2, l1 and l0 to 0 is sufficient in this case. bitsinterrupt levelbitsinterrupt level 000irq0/8100irq4/12 001irq1/9101irq5/13 010irq2/10110irq6/14 011irq3/11111irq7/15 bit description 7 reserved. must be 0. 6 special mask mode (smm) ? wo. 1 = the special mask mode can be used by an interrupt service routine to dynamically alter the system priority structure while the routine is ex ecuting, through selective enabling/disabling of the other channel's mask bits. bit 5, the esmm bit, must be set for this bit to have any meaning. 5 enable special mask mode (esmm) ? wo. 0 = disable. the smm bit becomes a ?don't care?. 1 = enable the smm bit to set or reset the special mask mode.
intel ? 631xesb/632xesb i/o controller hub datasheet 691 lpc interface bridge registers (d31:f0) 21.4.10 elcr1 ? master controlle r edge/level triggered register (lpc i/f ? d31:f0) offset address: 4d0h attribute: r/w default value: 00h size: 8 bits in edge mode, (bit[x] = 0), the interrupt is recognized by a low to high transition. in level mode (bit[x] = 1), the interrupt is recognized by a high level. the cascade channel, irq2, the heart beat timer (irq0), and the keyboard controller (irq1), cannot be put into level mode. 4:3 ocw3 select ? wo. when selecting ocw3, bits 4:3 = 01 2 poll mode command ? wo. 0 = disable. poll command is not issued. 1 = enable. the next i/o read to the interrupt controller is treated as an interrupt acknowledge cycle. an encoded byte is driven onto the data bus, representing the highest priority level requesting service. 1:0 register read command ? wo. these bits provide control for reading the in-service register (isr) and the interrupt request register (irr). when bit 1=0, bit 0 will not affect the register read selection. when bit 1=1, bit 0 selects the register status returned following an ocw3 read. if bit 0=0, the irr will be read. if bit 0=1, the isr will be read. following icw initialization, the default ocw3 port address read will be ?read irr?. to retain the current selection (read isr or read irr), always write a 0 to bit 1 when programming this register. the selected register can be read repeatedly without reprogramming ocw3. to select a new status register, ocw3 must be reprogrammed prior to attempting the read. 00 = no action 01 = no action 10 = read irq register 11 = read is register bit description bit description 7 irq7 ecl ? r/w. 0 = edge. 1 = level. 6 irq6 ecl ? r/w. 0 = edge. 1 = level. 5 irq5 ecl ? r/w. 0 = edge. 1 = level. 4 irq4 ecl ? r/w. 0 = edge. 1 = level. 3 irq3 ecl ? r/w. 0 = edge. 1 = level. 2:0 reserved. must be 0.
692 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.4.11 elcr2 ? slave controller edge/level triggered register (lpc i/f ? d31:f0) offset address: 4d1h attribute: r/w default value: 00h size: 8 bits in edge mode, (bit[x] = 0), the interrupt is recognized by a low to high transition. in level mode (bit[x] = 1), the interrupt is recognized by a high level. the real time clock, irq8#, and the floating point error interrupt, irq13, cannot be programmed for level mode. 21.5 advanced programmable interrupt controller (apic)(d31:f0) 21.5.1 apic register map (lpc i/f ? d31:f0) the apic is accessed via an indirect addressing scheme. two registers are visible by software for manipulation of most of the apic registers. these registers are mapped into memory space. the registers are shown in ta bl e 2 1 - 4 . table 21-5 lists the registers which can be accessed within the apic via the index register. when accessing these registers, accesses must be done a dword at a time. for example, software should never access byte 2 from the data register before accessing bytes 0 and 1. the hardware will not attempt to recover from a bad programming model in this case. bit description 7 irq15 ecl ? r/w. 0 = edge 1 = level 6 irq14 ecl ? r/w. 0 = edge 1 = level 5 reserved. must be 0. 4 irq12 ecl ? r/w. 0 = edge 1 = level 3 irq11 ecl ? r/w. 0 = edge 1 = level 2 irq10 ecl ? r/w. 0 = edge 1 = level 1 irq9 ecl ? r/w. 0 = edge 1 = level 0 reserved. must be 0. table 21-4. apic direct registers (lpc i/f ? d31:f0) address mnemonic register name size type fec0_0000h ind index 8 bits r/w fec0_0010h wdw window 32 bits r/w feco_0040h eoir eoi 32 bits wo
intel ? 631xesb/632xesb i/o controller hub datasheet 693 lpc interface bridge registers (d31:f0) 21.5.2 ind ? index register (lpc i/f ? d31:f0) memory address fec0_0000h attribute: r/w default value: 00h size: 8 bits the index register will select which apic indirect register to be manipulated by software. the selector values for the indirect registers are listed in ta b l e 2 1 - 5 . software will program this register to select the desired apic internal register . 21.5.3 dat ? window register (lpc i/f ? d31:f0) memory address fec0_0010h attribute: r/w default value: 00000000h size: 32 bits this is a 32-bit register specifying the data to be read or written to the register pointed to by the index register. this register can only be accessed in dword quantities. 21.5.4 eoir ? eoi register (lpc i/f ? d31:f0) memory address fec0_0040h attribute: wo default value: n/a size: 32 bits the eoi register is present to provide a mechanism to maintain the level triggered semantics for level-triggered interrupts issued on the parallel bus. when a write is issued to this register, the i/o apic will check the lower 8 bits written to this register, and compare it with the vector field for each entry in the i/o redirection table. when a match is found, the remote_irr bit (index offset 10h, bit 14) for that i/o redirection entry will be cleared. note: if multiple i/o redirection entries, for any reason, assign the same vector for more than one interrupt input, each of those entries will have the remote_irr bit reset to 0. the interrupt which was prematurely reset will not be lost because if its input remained active when the remote_irr bit is cleared, the interrupt will be reissued and serviced table 21-5. apic indirect registers (lpc i/f ? d31:f0) index mnemonic register name size type 00 id identification 32 bits r/w 01 ver version 32 bits ro 02?0f ? reserved ? ro 10?11 redir_tbl0 redirection table 0 64 bits r/w, ro 12?13 redir_tbl1 redirection table 1 64 bits r/w, ro ... ... ... ... ... 3e?3f redir_tbl23 redirection table 23 64 bits r/w, ro 40?ff ? reserved ? ro bit description 7:0 apic index ? r/w. this is an 8-bit pointer into the i/o apic register table. bit description 7:0 eoix ? r/w. this is a 32-bit register for the data to be read or written to the apic indirect register ( figure 21-5 ) pointed to by the index register (memory address fec0_0000h).
694 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) at a later time. note: only bits 7:0 are actually used. bits 31:8 are ignored by the intel ? 631xesb/632xesb i/o controller hub. note: to provide for future expansion, the processor should always write a value of 0 to bits 31:8. 21.5.5 id ? identification register (lpc i/f ? d31:f0) index offset: 00h attribute: r/w default value: 00000000h size: 32 bits the apic id serves as a physical name of the apic. the apic bus arbitration id for the apic is derived from its i/o apic id. this register is reset to 0 on power-up reset. 21.5.6 ver ? version register (lpc i/f ? d31:f0) index offset: 01h attribute: ro default value: 00170020h size: 32 bits each i/o apic contains a hardwired version register that identifies different implementation of apic and their versions. the maximum redirection entry information also is in this register, to let software know how many interrupt are supported by this apic. bit description 31:8 reserved. to provide for future expansion, the processor should always write a value of 0 to bits 31:8. 7:0 redirection entry clear ? wo. when a write is issued to this register, the i/o apic will check this field, and compare it with the vector field for each entry in the i/o redirection table. when a match is found, the remote_irr bit for that i/o redirection entry will be cleared. bit description 31:28 reserved 27:24 apic id ? r/w. software must program this value before using the apic. 23:16 reserved 15 scratchpad bit. 14:0 reserved bit description 31:24 reserved 23:16 maximum redirection entries ? ro. this is the entry number (0 being the lowest entry) of the highest entry in the redirection table. it is equal to the number of interrupt input pins minus one and is in the range 0 through 239. in the intel ? 631xesb/632xesb i/o controller hub this field is hardwired to 17h to indicate 24 interrupts. 15 prq ? ro. indicate that the ioxapic does not implement the pin assertion register. 14:8 reserved 7:0 version ? ro. this is a version number that identifies the implementation version.
intel ? 631xesb/632xesb i/o controller hub datasheet 695 lpc interface bridge registers (d31:f0) 21.5.7 redir_tbl ? redirection table (lpc i/f ? d31:f0) index offset: 10h?11h (vector 0) through attribute: r/w, ro 3e?3fh (vector 23) default value: bit 16 = 1,. size: 64 bits each, (accessed as all other bits undefined two 32 bit quantities) the redirection table has a dedicated entry for each interrupt input pin. the information in the redirection table is used to translate the interrupt manifestation on the corresponding interrupt pin into an apic message. the apic will respond to an edge triggered interrupt as long as the interrupt is held until after the acknowledge cycle has begun. once the interrupt is detected, a delivery status bit internally to the i/o apic is set. the state machine will step ahead and wait for an acknowledgment from the apic unit that the interrupt message was sent. only then will the i/o apic be able to recognize a new edge on that interrupt pin. that new edge will only result in a new invocation of the handler if its acceptance by the destination apic causes the interrupt request register bit to go from 0 to 1. (in other words, if the interrupt was not already pending at the destination.) bit description 63:56 destination ? r/w. if bit 11 of this entry is 0 (physical), then bits 59:56 specifies an apic id. in this case, bits 63:59 should be programmed by software to 0. if bit 11 of this entry is 1 (logical), then bits 63:56 specify the logical destination address of a set of processors. 55:48 extended destination id (edid) ? ro. these bits are sent to a local apic only when in processor system bus mode. they become bits 11:4 of the address. 47:17 reserved 16 mask ? r/w. 0 = not masked: an edge or level on this interrupt pin results in the delivery of the interrupt to the destination. 1 = masked: interrupts are not delivered nor held pending. setting this bit after the interrupt is accepted by a local apic has no effect on that interrupt. this behavior is identical to the device withdrawing the interrupt before it is posted to the processor. it is software's responsibility to deal with the case where the mask bit is set after the interrupt message has been accepted by a local apic unit but before the interrupt is dispensed to the processor. 15 trigger mode ? r/w. this field indicates the type of si gnal on the interrupt pin that triggers an interrupt. 0 = edge triggered. 1 = level triggered. 14 remote irr ? r/w. this bit is used for level triggered interrupts; its meaning is undefined for edge triggered interrupts. 0 = reset when an eoi message is received from a local apic. 1 = set when local apic/s accept the level interrupt sent by the i/o apic. 13 interrupt input pin polarity ? r/w. this bit specifies the polarity of each interrupt signal connected to the interrupt pins. 0 = active high. 1 = active low. 12 delivery status ? ro. this field contains the current status of the delivery of this interrupt. writes to this bit have no effect. 0 = idle. no activity for this interrupt. 1 = pending. interrupt has been injected, but delivery is not complete. 11 destination mode ? r/w. this field determines the interpretation of the destination field. 0 = physical. destination apic id is identified by bits 59:56. 1 = logical. destinations are identified by matchi ng bit 63:56 with the logical destination in the destination format register and logical destination register in each local apic. 10:8 delivery mode ? r/w. this field specifies how the apics listed in the destination field should act upon reception of this signal. certain delivery mo des will only operate as intended when used in conjunction with a specific trigger mode. these encodings are listed in the note below: 7:0 vector ? r/w. this field contains the interrupt vector for this interrupt. values range between 10h and feh.
696 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) note: delivery mode encoding: 000 = fixed. deliver the signal on the intr signal of a ll processor cores listed in the destination. trigger mode can be edge or level. 001 = lowest priority. deliver the signal on the intr signal of the processor core that is executing at the lowest priority among all the processors listed in the specified destination. trigger mode can be edge or level. 010 = smi (system management interrupt). requires the interrupt to be programmed as edge triggered. the vector information is ignored but must be programmed to all zeroes for future compatibility: not supported 011 = reserved 100 = nmi. deliver the signal on the nmi signal of all processor cores listed in the destination. vector information is ignored. nmi is treated as an edge tr iggered interrupt even if it is programmed as level triggered. for proper operation this redirection table entry must be programmed to edge triggered. the nmi delivery mode does not set the rirr bit. if the redirection table is incorrectly set to level, the loop count will continue counting through the redirection table addresses. once the count for the nmi pin is reached again, the interrupt will be sent again: not supported 101 = init. deliver the signal to all processor cores liste d in the destination by asse rting the init signal. all addressed local apics will assume their init state. init is always treated as an edge triggered interrupt even if programmed as level triggered. for proper operation this redirection table entry must be programmed to edge triggered. the init delivery mode does not set the rirr bit. if the redirection table is incorrectly set to level, the loop count will continue counting through the redirection table addresses. once the count for the init pin is reached again, the interrupt will be sent again: not supported 110 = reserved 111 = extint. deliver the signal to the intr signal of a ll processor cores listed in the destination as an interrupt that originated in an externally connected 8259a compatible interrupt controller. the inta cycle that corresponds to this extint delivery will be routed to the external controller that is expected to supply the vector. requires the interrupt to be programmed as edge triggered. 21.6 real time clock registers (lpc i/f ? d31:f0) 21.6.1 i/o register address map (lpc i/f ? d31:f0) the rtc internal registers and ram are organized as two banks of 128 bytes each, called the standard and extended banks. the first 14 bytes of the standard bank contain the rtc time and date information along with four registers, a ? d, that are used for configuration of the rtc. the extended bank contains a full 128 bytes of battery backed sram, and will be accessible even when the rtc module is disabled (via the rtc configuration register). registers a ? d do not physically exist in the ram. all data movement between the host processor and the real-time clock is done through registers mapped to the standard i/o space. the register map appears in table 21-6 . notes: 1. i/o locations 70h and 71h are the standard legacy location for the real-time clock. the map for this bank is shown in table 21-7 . locations 72h and 73h are for accessing the extended ram. the extended ram bank is also accessed using an indexed scheme. i/o address 72h is used as the address pointer and i/o address 73h is used as the data register. index a ddresses above 127h are not valid. if the extended ram is not needed, it may be disabled. 2. software must preserve the value of bit 7 at i/o addresses 70h and 74h. when writing to this address, software must first read the value, and then write the same value for bit 7 during the sequential address write. note that port 70h is not table 21-6. rtc i/o registers (lpc i/f ? d31:f0) i/o locations if u128e bit = 0 function 70h and 74h also alias to 72h and 76h real-time clock (standard ram) index register 71h and 75h also alias to 73h and 77h real-time clock (standard ram) target register 72h and 76h extended ram index register (if enabled) 73h and 77h extended ram target register (if enabled)
intel ? 631xesb/632xesb i/o controller hub datasheet 697 lpc interface bridge registers (d31:f0) directly readable. the only way to read this register is through alt access mode. although rtc index bits 6:0 are readable from port 74h, bit 7 will always return 0. if the nmi# enable is not changed during normal operation, software can alternatively read this bit once and then retain the value for all subsequent writes to port 70h. 21.6.2 indexed registers (lpc i/f ? d31:f0) the rtc contains two sets of indexed registers that are accessed using the two separate index and target registers (70/71h or 72/73h), as shown in ta bl e 2 1 - 7 . 21.6.2.1 rtc_rega ? register a (lpc i/f ? d31:f0) rtc index: 0a attribute: r/w default value: undefined size: 8-bit lockable: no power well: rtc this register is used for general configuration of the rtc functions. none of the bits are affected by rsmrst# or any other intel ? 631xesb/632xesb i/o controller hub reset signal. table 21-7. rtc (standard) ram bank (lpc i/f ? d31:f0) index name 00h seconds 01h seconds alarm 02h minutes 03h minutes alarm 04h hours 05h hours alarm 06h day of week 07h day of month 08h month 09h year 0ah register a 0bh register b 0ch register c 0dh register d 0eh?7fh 114 bytes of user ram
698 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.6.2.2 rtc_regb ? register b (general configuration) (lpc i/f ? d31:f0) rtc index: 0bh attribute: r/w default value: u0u00uuu (u: undefined) size: 8-bit lockable: no power well: rtc bit description 7 update in progress (uip) ? r/w. this bit may be monitored as a status flag. 0 = the update cycle will not start for at least 488 s. the time, calendar, and alarm information in ram is always available when the uip bit is 0. 1 = the update is soon to occur or is in progress. 6:4 division chain select (dv[2:0]) ? r/w. these three bits control the divider chain for the oscillator, and are not affected by rsmrst# or any other reset signal. dv2 corresponds to bit 6. 010 = normal operation 11x = divider reset 101 = bypass 15 stages (test mode only) 100 = bypass 10 stages (test mode only) 011 = bypass 5 stages (test mode only) 001 = invalid 000 = invalid 3:0 rate select (rs[3:0]) ? r/w. selects one of 13 taps of the 15 stage divider chain. the selected tap can generate a periodic interrupt if the pie bit is set in register b. otherwise this tap will set the pf flag of register c. if the periodic interrupt is not to be used, these bits should all be set to zero. rs3 corresponds to bit 3. 0000 = interrupt never toggles 0001 = 3.90625 ms 0010 = 7.8125 ms 0011 = 122.070 s 0100 = 244.141 s 0101 = 488.281 s 0110 = 976.5625 s 0111 = 1.953125 ms 1000 = 3.90625 ms 1001 = 7.8125 ms 1010 = 15.625 ms 1011 = 31.25 ms 1100 = 62.5 ms 1101 = 125 ms 1110 = 250 ms 1111= 500 ms bit description 7 update cycle inhibit (set) ? r/w. enables/inhibits the update cycles. this bit is not affected by rsmrst# nor any other reset signal. 0 = update cycle occurs normally once each second. 1 = a current update cycle will abort and subsequent update cycles will not occur until set is returned to zero. when set is one, the bios may initialize time and calendar bytes safely. note: this bit should be set then cleared early in bios post after each powerup directly after coin-cell battery insertion. 6 periodic interrupt enable ( pie) ? r/w. this bit is cleared by rsmrst#, but not on any other reset. 0 = disable. 1 = enable. allows an interrupt to occur with a time base set with the rs bits of register a. 5 alarm interrupt enable ( aie) ? r/w. this bit is cleared by rtcrst#, but not on any other reset. 0 = disable. 1 = enable. allows an interrupt to occur when th e af is set by an alarm match from the update cycle. an alarm can occur once a second, one an hour, once a day, or one a month.
intel ? 631xesb/632xesb i/o controller hub datasheet 699 lpc interface bridge registers (d31:f0) 21.6.2.3 rtc_regc ? register c (flag register) (lpc i/f ? d31:f0) rtc index: 0ch attribute: ro default value: 00u00000 (u: undefined) size: 8-bit lockable: no power well: rtc writes to register c have no effect. 4 update-ended interrupt enable ( uie) ? r/w. this bit is cleared by rsmrst#, but not on any other reset. 0 = disable. 1 = enable. allows an interrupt to occur when the update cycle ends. 3 square wave enable (sqwe) ? r/w. this bit serves no function in the intel ? 631xesb/632xesb i/o controller hub. it is left in this register bank to provide compatibility with the motorola 146818b. the intel ? 631xesb/632xesb i/o controller hub has no sqw pin. this bit is cleared by rsmrst#, but not on any other reset. 2 data mode (dm) ? r/w. this bit specifies either binary or bcd data representation. this bit is not affected by rsmrst# nor any other reset signal. 0 = bcd 1 = binary 1 hour format (hourform) ? r/w. this bit indicates the hour byte format. this bit is not affected by rsmrst# nor any other reset signal. 0 = twelve-hour mode. in twelve-hour mode, the seventh bit represents am as zero and pm as one. 1 = twenty-four hour mode. 0 daylight savings enable (dse) ? r/w. this bit triggers two special hour updates per year. the days for the hour adjustment are those specified in united states federal law as of 1987, which is different than previous years. this bit is not affected by rsmrst# nor any other reset signal. 0 = daylight savings time updates do not occur. 1 = a) update on the first sunday in april, where time increments from 1:59:59 am to 3:00:00 am. b) update on the last sunday in october when the time first reaches 1:59:59 am, it is changed to 1:00:00 am. the time must increment normally for at least two update cycles (seconds) previous to these conditions for the time change to occur properly. bit description bit description 7 interrupt request flag (irqf) ? ro. irqf = (pf * pie) + (af * aie) + (uf *ufe). this bit also causes the rtc interrupt to be asserted. this bit is cleared upon rsmrst# or a read of register c. 6 periodic interrupt flag (pf) ? ro. this bit is cleared upon rsmrst# or a read of register c. 0 = if no taps are specified via the rs bits in register a, this flag will not be set. 1 = periodic interrupt flag will be 1 when the tap specified by the rs bits of register a is 1. 5 alarm flag (af) ? ro. 0 = this bit is cleared upon rtcrst# or a read of register c. 1 = alarm flag will be set after all alarm values match the current time. 4 update-ended flag (uf) ? ro. 0 = the bit is cleared upon rsmrst# or a read of register c. 1 = set immediately following an update cycle for each second. 3:0 reserved. will always report 0.
700 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.6.2.4 rtc_regd ? register d (flag register) (lpc i/f ? d31:f0) rtc index: 0dh attribute: r/w default value: 10uuuuuu (u: undefined) size: 8-bit lockable: no power well: rtc 21.7 processor interface registers (lpc i/f ? d31:f0) ta b l e 2 1 - 8 is the register address map for the processor interface registers. 21.7.1 nmi_sc ? nmi status and control register (lpc i/f ? d31:f0) i/o address: 61h attribute: r/w, ro default value: 00h size: 8-bit lockable: no power well: core bit description 7 valid ram and time bit (vrt) ? r/w. 0 = this bit should always be written as a 0 for write cycle, however it will return a 1 for read cycles. 1 = this bit is hardwired to 1 in the rtc power well. 6 reserved. this bit always returns a 0 and should be set to 0 for write cycles. 5:0 date alarm ? r/w. these bits store the date of month alarm value. if set to 000000b, then a don?t care state is assumed. the host must configure the date alarm for these bits to do anything, yet they can be written at any time. if the date alarm is not enabled, these bits will return 0?s to mimic the functionality of the motorola 146818b. these bits are not affected by any reset assertion. table 21-8. processor interface pci register address map (lpc i/f ? d31:f0) offset mnemonic register name default type 61h nmi_sc nmi status and control 00h r/w, ro 70h nmi_en nmi enable 80h r/w (special) 92h port92 fast a20 and init 00h r/w f0h coproc_err coprocessor error 00h wo cf9h rst_cnt reset control 00h r/w bit description 7 serr# nmi source status (serr#_nmi_sts) ? ro. 1 = bit is set if a pci agent detected a system error and pulses the pci serr# line and if bit 2 (pci_serr_en) is cleared. this interrupt source is enabled by setting bit 2 to 0. to reset the interrupt, set bit 2 to 1 and then set it to 0. when writing to port 61h, this bit must be 0. note: this bit is set by any of the intel ? 631xesb/632xesb i/o controller hub internal sources of serr; this includes serr assertions forwarded from the secondary pci bus, errors on a pci express port, or other internal functions that generate serr#. 6 iochk# nmi source status (iochk_nmi_sts) ? ro. 1 = bit is set if an lpc agent (via serirq) asserted iochk# and if bit 3 (iochk_nmi_en) is cleared. this interrupt source is enabled by setting bit 3 to 0. to reset the interrupt, set bit 3 to 1 and then set it to 0. when writing to port 61h, this bit must be a 0. 5 timer counter 2 out status (tmr2_out_sts) ? ro. this bit reflects the current state of the 8254 counter 2 output. counter 2 must be programmed following any pci reset for this bit to have a determinate value. when writing to port 61h, this bit must be a 0. 4 refresh cycle toggle (ref_toggle) ? ro. this signal toggles from either 0 to 1 or 1 to 0 at a rate that is equivalent to when refresh cycles would occur. when writing to port 61h, this bit must be a 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 701 lpc interface bridge registers (d31:f0) 21.7.2 nmi_en ? nmi enable (and real time clock index) register (lpc i/f ? d31:f0) i/o address: 70h attribute: r/w (special) default value: 80h size: 8-bit lockable: no power well: core note: the rtc index field is write-only for normal operation. this field can only be read in alt- access mode. note, however, that this register is aliased to port 74h (documented in), and all bits are readable at that address. 21.7.3 port92 ? fast a20 and init register (lpc i/f ? d31:f0) i/o address: 92h attribute: r/w default value: 00h size: 8-bit lockable: no power well: core 3 iochk# nmi enable (iochk_nmi_en) ? r/w. 0 = enabled. 1 = disabled and cleared. 2 pci serr# enable (pci_serr_en) ? r/w. 0 = serr# nmis are enabled. 1 = serr# nmis are disabled and cleared. 1 speaker data enable ( spkr_dat_en) ? r/w. 0 = spkr output is a 0. 1 = spkr output is equivalent to the counter 2 out signal value. 0 timer counter 2 enable (tim_cnt2_en) ? r/w. 0 = disable 1 = enable bit description bits description 7 nmi enable (nmi_en) ? r/w (special). 0 = enable nmi sources. 1 = disable all nmi sources. 6:0 real time clock index address (rtc_indx) ? r/w (special). this data goes to the rtc to select which register or cmos ram address is being accessed. bit description 7:2 reserved 1 alternate a20 gate (alt_a20_gate) ? r/w. this bit is or?d with the a20gate input signal to generate a20m# to the processor. 0 = a20m# signal can potentially go active. 1 = this bit is set when init# goes active. 0 init_now ? r/w. when this bit transitions from a 0 to a 1, the intel ? 631xesb/632xesb i/o controller hub will force init# active for 16 pci clocks.
702 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.7.4 coproc_err ? coprocessor error register (lpc i/f ? d31:f0) i/o address: f0h attribute: wo default value: 00h size: 8-bits lockable: no power well: core 21.7.5 rst_cnt ? reset control register (lpc i/f ? d31:f0) i/o address: cf9h attribute: r/w default value: 00h size: 8-bit lockable: no power well: core 21.8 power management registers (pm ? d31:f0) the power management registers are distributed within the pci device 31: function 0 space, as well as a separate i/o range. each register is described below. unless otherwise indicate, bits are in the main (core) power well. bits not explicitly defined in each register are assumed to be reserved. when writing to a reserved bit, the value should always be 0. software should not attempt to use the value read from a reserved bit, as it may not be consistently 1 or 0. 21.8.1 power management pci configuration registers (pm ? d31:f0) ta b l e 2 1 - 9 shows a small part of the configuration space for pci device 31: function 0. it includes only those registers dedicated for power management. some of the registers are only used for legacy power management schemes. bits description 7:0 coprocessor error (coproc_err) ? wo. any value written to this register will cause ignne# to go active, if ferr# had generated an internal irq 13. for ferr# to generate an internal irq13, the coproc_err_en bit (device 31:function 0, offset d0, bit 13) must be 1. bit description 7:4 reserved 3 full reset (full_rst) ? r/w. this bit is used to determine the states of slp_s3#, slp_s4#, and slp_s5# after a cf9 hard reset (sys_rst =1 and rst_cpu is set to 1), after pwrok going low (with rsmrst# high), or after two tco timeouts. 0 = intel ? 631xesb/632xesb i/o controller hub will keep slp_s3#, slp_s4# and slp_s5# high. 1 = intel ? 631xesb/632xesb i/o controller hub will drive slp_s3#, slp_s4# and slp_s5# low for 3 ? 5 seconds. note: when this bit is set, it also causes the full power cycle (slp_s3/4/5# assertion) in response to sysreset#, pwrok#, and watchdog timer reset sources. 2 reset cpu (rst_cpu) ? r/w. when this bit transitions from a 0 to a 1, it initiates a hard or soft reset, as determined by the sys_rst bit (bit 1 of this register). 1 system reset (sys_rst) ? r/w. this bit is used to determine a hard or soft reset to the processor. 0 = when rst_cpu bit goes from 0 to 1, the intel ? 631xesb/632xesb i/o controller hub performs a soft reset by activating init# for 16 pci clocks. 1 = when rst_cpu bit goes from 0 to 1, the intel ? 631xesb/632xesb i/o controller hub performs a hard reset by activating pltrst# for 1 millisecond. it also resets the resume well bits (except for those noted throughout the eds). the slp_s3#, slp_s4#, and slp_s5# signals will not go active. 0 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 703 lpc interface bridge registers (d31:f0) 21.8.1.1 gen_pmcon_1 ? general pm configuration 1 register (pm ? d31:f0) offset address: a0h attribute: r/w, ro, r/wo default value: 0000h size: 16-bit lockable: no usage: acpi, legacy power well: core table 21-9. power management pci register address map (pm ? d31:f0) offset mnemonic register name default type a0h gen_pmcon_1 general power management configuration 1 0000h r/w, ro, r/wo a2h gen_pmcon_2 general power management configuration 2 0000h r/w, r/wc a4h gen_pmcon_3 general power management configuration 3 00h r/w, r/wc ach etr3 extended test mode register 3 00 r/w b8?bbh gpi_rout gpi route control 00000000h r/w bit description 15:11 reserved 10 bios_pci_exp_en ? r/w. this bit acts as a global enable for the sci associated with the pci express ports. 0 = the various pci express ports and (g)mch cannot cause the pci_exp_sts bit to go active. 1 = the various pci express ports and (g)mch can cause the pci_exp_sts bit to go active. 9 pwrbtn_lvl ? ro. this bit indicates the current state of the pwrbtn# signal. 0 = low. 1 = high. 8 reserved 7 reserved 6 i64_en . software sets this bit to indicate that the processor is an ia_64 processor, not an ia_32 processor. this may be used in various state machines where there are behavioral differences. 5 cpu slp# enable (cpuslp_en) ? r/w. 0 = disable. 1 = enables the cpuslp# signal to go active in thes1 state. this reduces the processor power. note: cpuslp# will go active during intel speedste p technology transitions and on entry to c3, c4, s3, s4 and s5 even if this bit is not set. 4 smi_lock ? r/wo. when this bit is set, writes to the glb_smi_en bit (pmbase + 30h, bit 0) will have no effect. once the smi_lock bit is set, writes of 0 to smi_lock bit will have no effect (that is, once set, this bit can only be cleared by pltrst#). 3:2 reserved 1:0 periodic smi# rate select ( per_smi_sel) ? r/w. set by software to control the rate at which periodic smi# is generated. 00 = 1 minute 01 = 32 seconds 10 = 16 seconds 11 = 8 seconds
704 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.8.1.2 gen_pmcon_2 ? general pm configuration 2 register (pm ? d31:f0) offset address: a2h attribute: r/w, r/wc default value: 00h size: 8-bit lockable: no usage: acpi, legacy power well: resume note: vrmpwrok is sampled using the rtc clock. therefore, low times that are less than one rtc clock period may not be detected by the intel ? 631xesb/632xesb i/o controller hub. bit description 7 dram initialization bit ? r/w. this bit does not effect hardware functionality in any way. bios is expected to set this bit prior to starting the dram initialization sequence and to clear this bit after completing the dram initialization sequence. bios can detect that a dram initialization sequence was interrupted by a reset by reading this bit during the boot sequence. ? if the bit is 1, then the dram initialization was interrupted. ? this bit is reset by the assertion of the rsmrst# pin. 6:5 reserved 4 system reset status (srs) ? r/wc. software clears this bit by writing a 1 to it. 0 = sys_reset# button not pressed. 1 = intel ? 631xesb/632xesb i/o controller hub sets this bit when the sys_reset# button is pressed. bios is expected to read this bit and clear it, if it is set. note: this bit is also reset by rsmrst# and cf9h resets. 3 cpu thermal trip status (cts) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit is set when pltrst# is inactive and thrmtrip# goes active while the system is in an s0 or s1 state. notes: 1. this bit is also reset by rsmrst#, and cf9h resets. it is not reset by the shutdown and reboot associated with the cputhrmtrip# event. 2. the cf9h reset in the description refers to cf9h type core well reset which includes sys_rst#, pwrok/vrmpwrgd low, smbus hard reset, tco ti meout. this type of reset will clear cts bit. 2 minimum slp_s4# assertion width violation status ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = hardware sets this bit when the slp_s4# assertion width is less than the time programmed in the slp_s4# minimum assertion width field. when exiting g3, the intel ? 631xesb/632xesb i/ o controller hub begins the timer when the rsmrst# input deasserts. note that this bit is functional regardless of the value in the slp_s4# assertion stretch enable. note: this bit is reset by the assertion of the rsmrst# pin, but can be set in some cases before the default value is readable. 1 cpu power failure ( cpupwr_flr) ? r/wc. 0 = software (typically bios) clears this bit by writing a 0 to it. 1 = indicates that the vrmpwrgd signal from the processor?s vrm went low. 0 pwrok failure (pwrok_flr) ? r/wc. 0 = software clears this bit by writing a 1 to it, or when the system goes into a g3 state. 1 = this bit will be set any time pwrok goes low, when the system was in s0, or s1 state. the bit will be cleared only by software by writing a 1 to this bit or when the system goes to a g3 state. note: see section 5.15.10.3 for more details about the pwrok pin functionality. note: in the case of true pwrok failure, pwrok will go low first before the vrmpwrgd.
intel ? 631xesb/632xesb i/o controller hub datasheet 705 lpc interface bridge registers (d31:f0) 21.8.1.3 gen_pmcon_3 ? general pm configuration 3 register (pm ? d31:f0) offset address: a4h attribute: r/w, r/wc default value: 00h size: 8-bit lockable: no usage: acpi, legacy power well: rtc note: rsmrst# is sampled using the rtc clock. therefore, low times that are less than one rtc clock period may not be detected by the intel ? 631xesb/632xesb i/o controller hub. bit description 7:6 swsmi_rate_sel ? r/w. this field indicates when the swsmi timer will time out. valid values are: 00 = 1.5 ms 0.6 ms 01 = 16 ms 4 ms 10 = 32 ms 4 ms 11 = 64 ms 4 ms these bits are not cleared by any type of reset except rtcrst#. 5:4 slp_s4# minimum assertion width ? r/w. this fi eld indicates the minimum assertion width of the slp_s4# signal to guarantee that the drams have been safely power-cycled. valid values are: 11 = 1 to 2 seconds 10 = 2 to 3 seconds 01 = 3 to 4 seconds 00 = 4 to 5 seconds this value is used in two ways: 1. if the slp_s4# assertion width is ever shorter than this time, a status bit is set for bios to read when s0 is entered. 2. if enabled by bit 3 in this register, the hardware will prevent the slp_s4# signal from deasserting within this minimum time period after asserting. rtcrst# forces this field to the conservative default state (00b) 3 slp_s4# assertion stretch enable ? r/w. 0 = the slp_s4# minimum assertion time is 1 to 2 rtcclk. 1 = the slp_s4# signal minimally assert for the time specified in bits 5:4 of this register. this bit is cleared by rtcrst# 2 rtc power status (rtc_pwr_sts) ? r/w. this bit is set when rtcrst# indicates a weak or missing battery. the bit is not cleared by any type of reset. the bit will remain set until the software clears it by writing a 0 back to this bit position. 1 power failure (pwr_flr) ? r/wc. this bit is in the rtc well, and is not cleared by any type of reset except rtcrst#. 0 = indicates that the trickle current has not failed since the last time the bit was cleared. software clears this bit by writing a 1 to it. 1 = indicates that the trickle current (from the main battery or trickle supply) was removed or failed. note: clearing cmos in an intel ? 631xesb/632xesb i/o controller hub-based platform can be done by using a jumper on rtcrst# or gpi, or using safemode strap. implementations should not attempt to clear cmos by using a jumper to pull vccrtc low. 0 afterg3_en ? r/w. this bit determines what state to go to when power is re-applied after a power failure (g3 state). this bit is in the rtc well and is not cleared by any type of reset except writes to cf9h or rtcrst#. 0 = system will return to s0 state (boot) after power is re-applied. 1 = system will return to the s5 state (except if it was in s4, in which case it will return to s4). in the s5 state, the only enabled wake event is the power button or any enabled wake event that was preserved through the power failure. note: bit will be set when thrmtrip#-based shutdown occurs.
706 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.8.1.4 etr3 ? extended test mode register 3(pm ? d31:f0) offset address: ach attribute: r/w default value: 00h size: 32 bit power well: resume note: this register resides in the resume well. bit [13:12] are reset by internal resume well reset (wrsmrstb). bit description 31:20 reserved 19 second lan powerup reset disable : 0 = it is an indication that resume well power was applied. bios sets this bit every time after it carried out the additional lan reset for system that implements lan disable through gpio. 1 = bios should not perform the additional lan reset. this bit is only cleared when rsmrst# goes low. 18 cf9h without resume well reset enable : 0 = cf9h write of 6h or eh will also reset resume well logic. 1 = cf9h write of 6h or eh will not cause internal resume well reset (wrsmrstb) to be asserted and thus resume well logic will maintain to their states. this bit is to be used when a second reset through cf9 write is desired upon power up or after resume from low power states. this bit has to be set prior to the write to cf9 register and has to be cleared upon completing the reset. failing to do so prevents resume well registers from being reset in the future cf9 writes. 17:14 reserved 13 lpc generic range 2 bit 5 mask: 0 = the existing lpc generic i/o decode range 2 decodes bit 5 as defined in d31:f0:88h register description. 1 = the lpc generic i/o decode range 2 forces an address match on bit 5. 12 lpc generic range 2 bit 4 mask: 0 = the existing lpc generic i/o decode range 2 decodes bit 4 as defined in d31:f0:88h register description. 1 = the lpc generic i/o decode range 2 forces an address match on bit 4. 11:10 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 707 lpc interface bridge registers (d31:f0) 21.8.1.5 gpi_rout ? gpi routing control register (pm ? d31:f0) offset address: b8h ? bbh attribute: r/w default value: 0000h size: 32-bit lockable: no power well: resume note: gpios that are not implemented will not have the corresponding bits implemented in this register. 9 digital filter enable : 0 = (default) the existing functionality is maintained (analog filtering up to 60 ns) 1 = it turns on the digital filter circuit on the transient disconnect detect, which prevents transient disconnects less than 25 us long from being detected. 8 transient disconnect detect enable : 0 = (default) this ensures that a single-ended zero on any of the usb ports will have to last at least 64 microseconds to be detected as a disconnect. 1 = it turns on the ?transient disconnect detect? functionality in the classic usb controllers and functions the same as ich3. 7:0 sv probe mode select: this is the select for one of the 256 possible sets of internal signals driven externally for observability. the balls used for th is feature are identical to the lan/usb 2.0 probe mode pins: bit pin 00 oc0# 01 oc1# 02 oc2# 03 oc3# 04 ri# 05 gp8 06 gp11_smbalert# 07 gp12 08 gp13 09 gp25 10 gp27 11 gp28 when this field is all ?0?, sv probe mode is not selected and the probe mode pins are mapped according to the usb 2.0 ehc probemode_sel defi ned in the d29:f7:offset e0h, bits[4:0]. any other setting of these bits will select the sv prob e mode, regardless of the probe mode enable bit (bus n: device 8, function 0, offset f0h, bit 0). see the mas for specific internal signals selected. bit description bit description 31:02 gpi[15] through gpi[1]: see bits 1:0 for description. 01:00 if the corresponding gpio is implemented and is set to an input, a ?1? in the gp_lvl bit can be routed to cause an smi# or sci. if the gpio is not set to an input, this field has no effect. ? 00 ? no effect (or gpio unimplemented) ? 01 ? smi# (if corresponding alt_gpi_smi_en bit also set) ? 10 ? sci (if corresponding gpe0_en bit also set) ? 11 ? reserved if the system is in an s1-s5 state and if the gpe 0_en bit is also set, then the gpi can cause a wake event, even if the gpi is not routed to cause an smi# or sci. exception: if the system is in s5 state due to a powerbutton override, then the gpis will not cause wake events. note: core well gpis are not capable of waking the system from sleep states where the core well is not powered.
708 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.8.2 power management i/o registers ta b l e 2 1 - 1 0 shows the registers associated with acpi and legacy power management support. these registers are enabled in the pci device 31: function 0 space (pm_io_en), and can be moved to any i/o location (128-byte aligned). the registers are defined to be compliant with the acpi 2.0 specification, and use the same bit names. note: all reserved bits and registers will always re turn 0 when read, and will have no effect when written.
intel ? 631xesb/632xesb i/o controller hub datasheet 709 lpc interface bridge registers (d31:f0) 21.8.2.1 pm1_sts ? power management 1 status register i/o address: pmbase + 00h ( acpi pm1a_evt_blk ) attribute: r/wc default value: 0000h size: 16-bit lockable: no usage: acpi or legacy power well: bits 0?7: core, bits 8?15: resume, except bit 11 in rtc if bit 10 or 8 in this register is set, and the corresponding _en bit is set in the pm1_en register, then the intel ? 631xesb/632xesb i/o controller hub will generate a wake event. once back in an s0 state (or if already in an s0 state when the event occurs), the intel ? 631xesb/632xesb i/o controller hub will also generate an sci if the sci_en bit is set, or an smi# if the sci_en bit is not set. note: bit 5 does not cause an smi# or a wake event. bit 0 does not cause a wake event but can cause an smi# or sci. table 21-10. acpi and legacy i/o register map pmbase+ offset mnemonic register name acpi pointer default type 00?01h pm1_sts pm1 status pm1a_evt_blk 0000h r/wc 02?03h pm1_en pm1 enable pm1a_evt_blk+2 0000h r/w 04?07h pm1_cnt pm1 control pm1a_cnt_blk 00000000h r/w, wo 08?0bh pm1_tmr pm1 timer pmtmr_blk 00000000h ro 0c?0fh ? reserved ? ? ? 10h?13h proc_cnt processor control p_blk 00000000h r/w, ro, wo 14h lv2 level 2 p_blk+4 00h ro 15h?16h ? reserved ? ? ? 17?1fh ? reserved ? ? ? 20h ? reserved ? ? ? 28?2bh gpe0_sts general purpose event 0 status gpe0_blk 00000000h r/w, r/wc 2c?2fh gpe0_en general purpose event 0 enables gpe0_blk+4 00000000h r/w 30?33h smi_en smi# control and enable 0000h r/w, wo, r/w (special) 34?37h smi_sts smi status 0000h r/wc, ro 38?39h alt_gp_smi_en alternate gpi smi enable 0000h r/w 3a?3bh alt_gp_smi_sts alternate gpi smi status 0000h r/wc 3c?43h ? reserved ? ? ? 44?45h devact_sts device activity status 0000h r/wc 46h?4fh ? reserved 50h ? reserved 51h?5fh ? reserved ? ? ? 54h?57h c3_res c3-residency register ? 00h ro 60h?7fh ? reserved for tco ? ? ?
710 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) bit description 15 wake status (wak_sts) ? r/wc. this bit is not affected by hard resets caused by a cf9 write, but is reset by rsmrst#. 0 = software clears this bit by writing a 1 to it. 1 = set by hardware when the system is in one of the sleep states (via the slp_en bit) and an enabled wake event occurs. upon setting this bit, the intel ? 631xesb/632xesb i/o controller hub will transition the system to the on state. if the afterg3_en bit is not set and a power failure (such as removed batteries) occurs without the slp_en bit set, the system will return to an s0 state when power returns, and the wak_sts bit will not be set. if the afterg3_en bit is set and a power failure occurs without the slp_en bit having been set, the system will go into an s5 state when power returns, and a subsequent wake event will cause the wak_sts bit to be set. note that any subsequent wake event would have to be caused by either a power button press, or an enabled wake event that was preserved through the power failure (enable bit in the rtc well). 14 reserved 13:12 reserved 11 power button override status (prbtnor_sts) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit is set any time a power button override occurs (intel ? 631xesb/632xesb i/o controller hub, the power button is pressed for at least 4 consecutive seconds), or due to the corresponding bit in the smbus slave message. the power button override causes an unconditional transition to the s5 state, as well as sets the afterg# bit. the bios or sci handler clears this bit by writing a 1 to it. this bit is not affected by hard resets via cf9h writes, and is not reset by rsmrst#. thus, this bit is preserved through power failures. 10 rtc status (rtc_sts) ? r/wc. this bit is not affected by hard resets caused by a cf9 write, but is reset by rsmrst#. 0 = software clears this bit by writing a 1 to it. 1 = set by hardware when the rtc generates an alarm (assertion of the irq8# signal). additionally if the rtc_en bit (pmbase + 02h, bit 10) is set, the setting of the rtc_sts bit will generate a wake event. 9 reserved 8 power button status ( pwrbtn__sts) ? r/wc. this bit is not affected by hard resets caused by a cf9 write. 0 = if the pwrbtn# signal is held low for more than 4 seconds, the hardware clears the pwrbtn_sts bit, sets the pwrbtnor_sts bit, and the system transitions to the s5 state with only pwrbtn# enabled as a wake event. this bit can be cleared by software by writing a one to the bit position. 1 = this bit is set by hardware when the pwrbtn# signal is asserted low, independent of any other enable bit. in the s0 state, while pwrbtn_en and pwrbtn_sts are both set, an sci (or smi# if sci_en is not set) will be generated. in any sleeping state s1?s5, while pwrbtn_en (pmbase + 02h, bit 8) and pwrbtn_sts are both set, a wake event is generated. note: if the pwrbtn_sts bit is cleared by software while the pwrbtn# signal is sell asserted, this will not cause the pwrbn_sts bit to be set. the pwrbtn# signal must go inactive and active again to set the pwrbtn_sts bit. 7:6 reserved 5 global status (gbl _sts) ? r/wc. 0 = the sci handler should then clear this bit by writing a 1 to the bit location. 1 = set when an sci is generated due to bios wanting the attention of the sci handler. bios has a corresponding bit, bios_rls, which will cause an sci and set this bit. 4:1 reserved 0 timer overflow status (tmrof_sts) ? r/wc. 0 = the sci or smi# handler clears this bit by writing a 1 to the bit location. 1 = this bit gets set any time bit 22 of the 24-bit timer goes high (bits are numbered from 0 to 23). this will occur every 2.3435 seconds. when the tmrof_en bit (pmbase + 02h, bit 0) is set, then the setting of the tmrof_sts bit will additionally generate an sci or smi# (depending on the sci_en).
intel ? 631xesb/632xesb i/o controller hub datasheet 711 lpc interface bridge registers (d31:f0) 21.8.2.2 pm1_en ? power management 1 enable register i/o address: pmbase + 02h ( acpi pm1a_evt_blk + 2 ) attribute: r/w default value: 0000h size: 16-bit lockable: no usage: acpi or legacy power well: bits 0?7: core, bits 8?9, 11?15: resume, bit 10: rtc bit description 15 reserved 14 reserved 13:11 reserved 10 rtc event enable (rtc_en) ? r/w. this bit is in the rtc well to allow an rtc event to wake after a power failure. this bit is not cleared by any reset other than rtcrst# or a power button override event. 0 = no sci (or smi#) or wake event is generated then rtc_sts (pmbase + 00h, bit 10) goes active. 1 = an sci (or smi#) or wake event will occur when this bit is set and the rtc_sts bit goes active. 9 reserved. 8 power button enable (pwrbtn_en) ? r/w. this bit is used to enable the setting of the pwrbtn_sts bit to generate a power management event (smi#, sci). pwrbtn_en has no effect on the pwrbtn_sts bit (pmbase + 00h, bit 8) bein g set by the assertion of the power button. the power button is always enabled as a wake event. 0 = disable. 1 = enable. 7:6 reserved. 5 global enable (gbl_en) ? r/w. when both the gbl_en and the gbl_sts bit (pmbase + 00h, bit 5) are set, an sci is raised. 0 = disable. 1 = enable sci on gbl_sts going active. 4:1 reserved. 0 timer overflow interrupt enable (tmrof_en) ? r/w. works in conjunction with the sci_en bit (pmbase + 04h, bit 0) as described below: tmrof_ensci_eneffect when tmrof_sts is set 0 x no smi# or sci 1 0 smi# 1 1 sci
712 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.8.2.3 pm1_cnt ? power management 1 control i/o address: pmbase + 04h ( acpi pm1a_cnt_blk ) attribute: r/w, wo default value: 0000h size: 32-bit lockable: no usage: acpi or legacy power well: bits 0?7: core, bits 8?12: rtc, bits 13?15: resume 21.8.2.4 pm1_tmr ? power management 1 timer register i/o address: pmbase + 08h ( acpi pmtmr_blk ) attribute: ro default value: xx000000h size: 32-bit lockable: no usage: acpi power well: core bit description 31:14 reserved. 13 sleep enable ( slp_en) ? wo. setting this bit causes the system to sequence into the sleep state defined by the slp_typ field. 12:10 sleep type (slp_typ) ? r/w. this 3-bit field defines the type of sleep the system should enter when the slp_en bit is set to 1. these bits are only reset by rtcrst#. 000 = on: typically maps to s0 state. 001 = asserts stpclk#. puts processor in stop-grant state. optional to assert cpuslp# to put processor in sleep state: typically maps to s1 state. 010 = reserved 011 = reserved 100 = reserved 101 = suspend-to-ram. assert slp_s3#: typically maps to s3 state. 110 = suspend-to-disk. assert slp_s3#, and slp_s4#: typically maps to s4 state. 111 = soft off. assert slp_s3#, slp_s4#, and slp_s5#: typically maps to s5 state. 9:3 reserved. 2 global release (gbl_rls) ? wo. 0 = this bit always reads as 0. 1 = acpi software writes a 1 to this bit to raise an event to the bios. bios software has a corresponding enable and status bits to control its ability to receive acpi events. 1 reserved 0 sci enable ( sci_en) ? r/w. selects the sci interrupt or the smi# interrupt for various events including the bits in the pm1_sts register (bit 10, 8, 0), and bits in gpe0_sts. 0 = these events will generate an smi#. 1 = these events will generate an sci. bit description 31:24 reserved 23:0 timer value (tmr_val) ? ro. returns the running count of the pm timer. this counter runs off a 3.579545 mhz clock (14.31818 mhz divided by 4). it is reset to 0 during a pci reset, and then continues counting as long as the system is in the s0 state. after an s1 state, the counter will not be reset (it will continue counting from the last value in s0 state. anytime bit 22 of the timer goes high to low (bits referenced from 0 to 23), the tmrof_sts bit (pmbase + 00h, bit 0) is set. the high-to-low transition will occur every 2.3435 seconds. if the tmrof_en bit (pmbase + 02h, bit 0) is set, an sci interrupt is also generated.
intel ? 631xesb/632xesb i/o controller hub datasheet 713 lpc interface bridge registers (d31:f0) 21.8.2.5 proc_cnt ? processor control register i/o address: pmbase + 10h ( acpi p_blk ) attribute: r/w, ro, wo default value: 00000000h size: 32-bit lockable: no (bits 7:5 are write once) usage: acpi or legacy power well: core bit description 31:18 reserved 17 throttle status (thtl_sts) ? ro. 0 = no clock throttling is occurring (maximum processor performance). 1 = indicates that the clock state machine is throttling the cpu performance. this could be due to the tht_en bit or the force_thtl bit being set. 16:9 reserved 8 force thermal throttling (force_thtl) ? r/w. software can set this bit to force the thermal throttling function. 0 = no forced throttling. 1 = throttling at the duty cycle specified in th rm_dty starts immediately, and no smi# is generated. 7:5 thrm_dty ? wo. this write-once field determines the duty cycle of the throttling when the force_thtl bit is set. the duty cycle indicates the approximate percentage of time the stpclk# signal is asserted while in the throttle mode. the stpclk# throttle period is 1024 pciclks. note that the throttling only occurs if the system is in the c0 state. if in the c2, c3, or c4 state, no throttling occurs. once the thrm_dty field is written, any subsequent writes will have no effect until pltrst# goes active. thrm_dty throttle modepci clocks 000 50% (default)512 001 87.5%896 010 75.0%768 011 62.5%640 100 50%512 101 37.5%384 110 25%256 111 12.5%128 4 thtl_en ? r/w. when set and the system is in a c0 state, it enables a processor-controlled stpclk# throttling. the duty cycle is selected in the thtl_dty field. 0 = disable 1 = enable 3:1 thtl_dty ? r/w. this field determines the duty cycle of the throttling when the thtl_en bit is set. the duty cycle indicates the approximate percentage of time the stpclk# signal is asserted (low) while in the throttle mode. the stpclk# throttle period is 1024 pciclks. thtl_dty throttle modepci clocks 000 50% (default)512 001 87.5%896 010 75.0%768 011 62.5%640 100 50%512 101 37.5%384 110 25%256 111 12.5%128 0 reserved
714 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.8.2.6 lv2 ? level 2 register i/o address: pmbase + 14h ( acpi p_blk+4 ) attribute: ro default value: 00h size: 8-bit lockable: no usage: acpi or legacy power well: core note: this register should not be used by intel itanium pr ocessors or systems with more than 1 logical cpu, unless appropriate semaphoring software has been put in place to ensure that all threads/cpus are ready for the c2 state when the read to this register occurs 21.8.2.7 gpe0_sts ? general purpose event 0 status register i/o address: pmbase + 28h ( acpi gpe0_blk ) attribute: r/w, r/wc default value: 00000000h size: 32-bit lockable: no usage: acpi power well: resume this register is symmetrical to the general purpose event 0 enable register. unless indicated otherwise below, if the corresponding _en bit is set, then when the _sts bit get set, the intel ? 631xesb/632xesb i/o controller hub will generate a wake event. once back in an s0 state (or if already in an s0 state when the event occurs), the intel ? 631xesb/632xesb i/o controller hub will also generate an sci if the sci_en bit is set, or an smi# if the sci_en bit (pmbase + 04h, bit 0) is not set. bits 31:16 are reset by a cf9h write; bits 15:0 are not. all are reset by rsmrst#. bit description 7:0 reads to this register return all 0?s, writes to this register have no effect. reads to this register generate a ?enter a level 2 power state? (c2) to the clock control logic. this will cause the stpclk# signal to go active, and stay active until a break event occurs. throttling (due either to thtl_en or force_thtl) will be ignored. bit description 31:16 gpin_sts ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = these bits are set any time the corresponding gpio is set up as an input and the corresponding gpio signal is high (or low if the corresponding gp_inv bit is set). if the corresponding enable bit is set in the gpe0_en register, then when the gpi[n]_sts bit is set: ? if the system is in an s1?s5 state, the event will also wake the system. ? if the system is in an s0 state (or upon waking back to an s0 state), a sci will be caused depending on the gpi_rout bits (d31:f0:b8h, bits 31:30) for the corresponding gpi. 15 reserved 14 usb4_sts ? r/w. 0 = disable. 1 = set by hardware and can be reset by writing a one to this bit position or a resume-well reset. this bit is set when usb uhci controller #4 needs to cause a wake. additionally if the usb4_en bit is set, the setting of the usb4_sts bit will generate a wake event. 13 pme_b0_sts ? r/w. this bit will be set to 1 by the intel ? 631xesb/632xesb i/o controller hub when any internal device with pci power management capabilities on bus 0 asserts the equivalent of the pme# signal. additionally, if the pme_b0_en bit is set, and the system is in an s0 state, then the setting of the pme_b0_sts bit will generate an sci (or smi# if sci_en is not set). if the pme_b0_sts bit is set, and the system is in an s1?s4 state (or s5 state due to slp_typ and slp_en), then the setting of the pme_b0_sts bit will generate a wake event, and an sci (or smi# if sci_en is not set) will be generated. if the system is in an s5 state due to power button override, then the pme_b0_sts bit will not cause a wake event or sci. the default for this bit is 0. writing a 1 to this bit position clears this bit. 12 usb3_sts ? r/w. 0 = disable. 1 = set by hardware and can be reset by writing a one to this bit position or a resume-well reset. this bit is set when usb uhci controller #3 needs to cause a wake. additionally if the usb3_en bit is set, the setting of the usb3_sts bit will generate a wake event.
intel ? 631xesb/632xesb i/o controller hub datasheet 715 lpc interface bridge registers (d31:f0) 11 pme_sts ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = set by hardware when the pme# signal goes active. additionally, if the pme_en bit is set, and the system is in an s0 state, then the setting of the pme_sts bit will generate an sci or smi# (if sci_en is not set). if the pme_en bit is set, and the system is in an s1?s4 state (or s5 state due to setting slp_typ and slp_en), then the setting of the pme_sts bit will generate a wake event, and an sci will be generated. if the system is in an s5 state due to power button override or a power failure, then pme_sts will not cause a wake event or sci. 10 reserved 9 pci_exp_sts ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = set by hardware to indicate that: ? the pme event message was received on one or more of the pci express ports ? an assert pmegpe message received from the (g)mch via esi notes: 1. the pci wake# pin and the pci express beacons have no impact on this bit. 2. if the pci_exp_sts bit went active due to an assert pmegpe message, then a deassert pmegpe message must be received prior to the software write in order for the bit to be cleared. 3. if the bit is not cleared and the corresponding pci_exp_en bit is set, the level-triggered sci will remain active. 4. a race condition exists where the pci express device sends another pme message because the pci express device was not serviced within the time when it must resend the message. this may result in a spurious interrupt, and th is is comprehended and approved by the pci express specification. the window for this race condition is approximately 95-105 milliseconds. 8 ri_sts ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = set by hardware when the ri# input signal goes active. 7 smbus wake status (smb_wak_sts) ? r/wc. the smbus controller can independently cause an smi# or sci, so this bit does not need to do so (unlike the other bits in this register). software clears this bit by writing a 1 to it. 0 = wake event not caused by the intel ? 631xesb/632xesb i/o controller hub?s smbus logic. 1 = set by hardware to indicate that the wake event was caused by the intel ? 631xesb/ 632xesb i/o controller hub?s smbus logic.this bit will be set by the wake/smi# command type, even if the system is already awake. the smi handler should then clear this bit. notes: 1. this bit is set by the smbus slave command 01h (wake/smi#) even when the system is in the s0 state. therefore, to avoid an instant wake on subsequent transitions to sleep states, software must clear this bit after each reception of the wake/smi# command or just prior to entering the sleep state. 2. if smb_wak_sts is set due to smbus slave receiving a message, it will be cleared by internal logic when a thrmtrip# event happens or a power button override event. however, thrmtrip# or power button override event will not clear smb_wak_sts if it is set due to smbalert# signal going active. 3. the smbalert_sts bit (d31:f3:i/o offset 00h:bit 5) should be cleared by software before the smb_wak_sts bit is cleared. 6 tcosci_sts ? r/wc. software clears this bit by writing a 1 to it. 0 = toc logic did not cause sci. 1 = set by hardware when the tco logic causes an sci. 5 ac97_sts ? r/wc. this bit will be set to 1 when the codecs are attempting to wake the system and the pme events for the codecs are armed for wakeup. a pme is armed by programming the appropriate pmee bit in the power management control and status register at bit 8 of offset 54h in each ac?97 function. 0 = software clears this bit by writing a 1 to it. 1 = set by hardware when the codecs are attempting to wake the system. the ac97_sts bit gets set only from the following two cases: 1. the pmee bit for the function is set, and o the ac-link bit clock has been shut and the routed acz_sdin line is high (for audio, if routing is disabled, no wake events are allowed. 2. for modem, if audio routing is disabled, then the wake event is an or of all acz_sdin lines. if routing is enabled, then the wake event for modem is the remaining non-routed acz_sdin line), or o gpi status change interrupt bit (nabmbar + 30h, bit 0) is 1. note: this bit is not affected by a hard reset caused by a cf9h write. note: this bit is also used for azalia when intel ? 631xesb/632xesb i/o controller hub is configured to use the azalia host controller rather than the ac97 host controller. bit description
716 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.8.2.8 gpe0_en ? general purpose event 0 enables register i/o address: pmbase + 2ch ( acpi gpe0_blk + 4 ) attribute: r/w default value: 00000000h size: 32-bit lockable: no usage: acpi power well: bits 0?7, 9, 12, 14?31 resume, bits 8, 10?11, 13 rtc this register is symmetrical to the general purpose event 0 status register. all the bits in this register should be cleared to 0 based on a power button override or processor thermal trip event. the resume well bits are all cleared by rsmrst#. the rtc sell bits are cleared by rtcrst#. 4 usb2_sts ? r/wc. software clears this bit by writing a 1 to it. 0 = usb uhci controller 2 does not need to cause a wake. 1 = set by hardware when usb uhci controller 2 needs to cause a wake. wake event will be generated if the corresponding usb2_en bit is set. 3 usb1_sts ? r/wc. software clears this bit by writing a 1 to it. 0 = usb uhci controller 1 does not need to cause a wake. 1 = set by hardware when usb uhci controller 1 needs to cause a wake. wake event will be generated if the corresponding usb1_en bit is set. 2 reserved 1 hot_plug_sts ? r/wc. 0 = this bit is cleared by writing a 1 to this bit position. 1 = when a pci express hot-plug event occurs. this will cause an sci if the hot_plug_en bit is set in the gep0_en register. 0 thermal interrupt status (thrm_sts) ? r/wc. software clears this bit by writing a 1 to it. 0 = thrm# signal not driven active as defined by the thrm_pol bit 1 = set by hardware anytime the thrm# signal is driven active as defined by the thrm_pol bit. additionally, if the thrm_en bi t is set, then the setting of the thrm_sts bit will also generate a power management event (sci or smi#). bit description bit description 31:16 gpin_en ? r/w. these bits enable the corresponding gpi[n]_sts bits being set to cause a sci, and/or wake event. these bits are cleared by rsmrst#. note: mapping is as follows: bit 31 corresponds to gpi[15]... and bit 16 corresponds to gpi:[0]. software should not set bits 28:29 corresponding to gpi[12:13]. 15 reserved 14 usb4_en ? r/w. 0 = disable. 1 = enable the setting of the usb4_sts bit to generate a wake event. the usb4_sts bit is set anytime usb uhci controller #4 signals a wake event. break events are handled via the usb interrupt. 13 pme_b0_en ? r/w. 0 = disable 1 = enables the setting of the pme_b0_sts bit to generate a wake event and/or an sci or smi#. pme_b0_sts can be a wake event from the s1?s4 states, or from s5 (if entered via slp_typ and slp_en) or power failure, but not power button override. this bit defaults to 0. note: it is only cleared by software or rtcrst#. it is not cleared by cf9h writes. 12 usb3_en ? r/w. 0 = disable. 1 = enable the setting of the usb3_sts bit to generate a wake event. the usb3_sts bit is set anytime usb uhci controller #3 signals a wake event. break events are handled via the usb interrupt. 11 pme_en ? r/w. 0 = disable. 1 = enables the setting of the pme_sts to generate a wake event and/or an sci. pme# can be a wake event from the s1 ? s4 state or from s5 (if entered via slp_en, but not power button override).
intel ? 631xesb/632xesb i/o controller hub datasheet 717 lpc interface bridge registers (d31:f0) 21.8.2.9 smi_en ? smi control and enable register i/o address: pmbase + 30h attribute: r/w, r/w (special), wo default value: 00000000h size: 32 bit lockable: no usage: acpi or legacy power well: core note: this register is symmetrical to the smi status register. 10 reserved 9 pci_exp_en ? r/w. 0 = disable sci generation upon pci_exp_sts bit being set. 1 = enables intel ? 631xesb/632xesb i/o controller hub to cause an sci when pci_exp_sts bit is set. this is used to allow the pci express ports, including the link to the (g)mch, to cause an sci due to wake/pme events. 8 ri_en ? r/w. the value of this bit will be maintained through a g3 state and is not affected by a hard reset caused by a cf9h write. 0 = disable. 1 = enables the setting of the ri_sts to generate a wake event. 7 reserved 6 tcosci_en ? r/w. 0 = disable. 1 = enables the setting of the tcosci_sts to generate an sci. 5 ac97_en ? r/w. 0 = disable. 1 = enables the setting of the ac97_sts to generate a wake event. note: this bit is also used for azalia when the azalia host controller is enabled rather than the ac97 host controller. 4 usb2_en ? r/w. 0 = disable. 1 = enables the setting of the usb2_sts to generate a wake event. 3 usb1_en ? r/w. 0 = disable. 1 = enables the setting of the usb1_sts to generate a wake event. 2 thrm#_pol ? r/w. this bit controls the polarity of the thrm# pin needed to set the thrm_sts bit. 0 = low value on the thrm# signal will set the thrm_sts bit. 1 = high value on the thrm# signal will set the thrm_sts bit. 1 hot_plug_en ? r/w. 0 = disables sci generation upon the hot_plug_sts bit being set. 1 = enables the intel ? 631xesb/632xesb i/o controller hub to cause an sci when the hot_plug_sts bit is set. this is used to allow the pci express ports to cause an sci due to hot-plug events. 0 thrm_en ? r/w. 0 = disable. 1 = active assertion of the thrm# signal (as defined by the thrm_pol bit) will set the thrm_sts bit and generate a power management event (sci or smi). bit description bit description 31:19 reserved 18 intel_usb2_en ? r/w. 0 = disable 1 = enables intel-specific usb2 smi logic to cause smi#. 17 legacy_usb2_en ? r/w. 0 = disable 1 = enables legacy usb2 logic to cause smi#. 16:15 reserved
718 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 14 periodic_en ? r/w. 0 = disable. 1 = enables the intel ? 631xesb/632xesb i/o controller hub to generate an smi# when the periodic_sts bit (pmbase + 34h, bit 14) is set in the smi_sts register (pmbase + 34h). 13 tco_en ? r/w. 0 = disables tco logic generating an smi#. note that if the nmi2smi_en bit is set, smis that are caused by re-routed nmis will not be gated by the tco_en bit. even if the tco_en bit is 0, nmis will still be routed to cause smis. 1 = enables the tco logic to generate smi#. note: this bit cannot be written once the tco_lock bit is set. 12 reserved 11 mcsmi_enmicrocontroller smi enable (mcsmi_en) ? r/w. 0 = disable. 1 = enables intel ? 631xesb/632xesb i/o controller hub to trap accesses to the microcontroller range (62h or 66h) and generate an smi#. note that ?trapped? cycles will be claimed by the intel ? 631xesb/632xesb i/o controller hub on pci, but not forwarded to lpc. 10:8 reserved 7 bios release (bios_rls) ? wo. 0 = this bit will always return 0 on reads. writes of 0 to this bit have no effect. 1 = enables the generation of an sci interrupt for acpi software when a one is written to this bit position by bios software. note: gbl_sts being set will cause an sci, even if the sci_en bit is not set. software must take great care not to set the bios_rls bit (which causes gbl_sts to be set) if the sci handler is not in place. 6 software smi# timer enable (swsmi_tmr_en) ? r/w. 0 = disable. clearing the swsmi_tmr_en bit before the timer expires will reset the timer and the smi# will not be generated. 1 = starts software smi# timer. when the swsmi timer expires (the timeout period depends upon the swsmi_rate_sel bit setting), swsmi_tmr_sts is set and an smi# is generated. swsmi_tmr_en stays set until cleared by software. 5 reserved. 4 slp_smi_en ? r/w. 0 = disables the generation of smi# on slp_en. note that this bit must be 0 before the software attempts to transition the system into a sleep state by writing a 1 to the slp_en bit. 1 = a write of 1 to the slp_en bit (bit 13 in pm1_cnt register) will generate an smi#, and the system will not transition to the sleep state based on that write to the slp_en bit. 3 legacy_usb_en ? r/w. 0 = disable. 1 = enables legacy usb circuit to cause smi#. 2bios_en ? r/w. 0 = disable. 1 = enables the generation of smi# when acpi software writes a 1 to the gbl_rls bit. 1 end of smi (eos) ? r/w (special). this bit controls the arbitration of the smi signal to the processor. this bit must be set for the intel ? 631xesb/632xesb i/o controller hub to assert smi# low to the processor after smi# has been asserted previously. 0 = once the intel ? 631xesb/632xesb i/o controller hub asserts smi# low, the eos bit is automatically cleared. 1 = when this bit is set to 1, smi# signal will be deasserted for 4 pci clocks before its assertion. in the smi handler, the processor should clear a ll pending smis (by servicing them and then clearing their respective status bits), set the eos bit, and exit smm. this will allow the smi arbiter to re-assert smi upon detection of an smi event and the setting of a smi status bit. note: intel ? 631xesb/632xesb i/o controller hub is able to generate 1st smi after reset even though eos bit is not set. subsequent smi require eos bit is set. 0 gbl_smi_en ? r/w. 0 = no smi# will be generated by intel ? 631xesb/632xesb i/o controller hub. this bit is reset by a pci reset event. 1 = enables the generation of smi# in the system upon any enabled smi event. note: when the smi_lock bit is set, this bit cannot be changed. bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 719 lpc interface bridge registers (d31:f0) 21.8.2.10 smi_sts ? smi status register i/o address: pmbase + 34h attribute: ro, r/wc default value: 00000000h size: 32-bit lockable: no usage: acpi or legacy power well: core note: if the corresponding _en bit is set when the _sts bit is set, the intel ? 631xesb/ 632xesb i/o controller hub will cause an smi# (except bits 8?10 and 12, which do not need enable bits since they are logic ors of other registers that have enable bits). the intel ? 631xesb/632xesb i/o controller hub uses the same gpe0_en register (i/o address: pmbase+2ch) to enab le/disable both smi and acpi sci general purpose input events. acpi os assumes that it owns the entire gpe0_en register per acpi spec. problems arise when some of the general-purpose inputs are enabled as smi by bios, and some of the general purpose inputs are enabled for sci. in this case acpi os turns off the enabled bit for any gpix input signals that are not indicated as sci general- purpose events at boot, and exit from sleeping states. bios should define a dummy control method which prevents the acpi os from clearing the smi gpe0_en bits. bit description 31:21 reserved 20 pci_exp_smi_sts ? ro. pci express smi event occurred. this could be due to a pci express pme event or hot-plug event. 19 reserved 18 intel_usb2_sts ? ro. this non-sticky read-only bit is a logical or of each of the smi status bits in the intel-specific usb2 smi status register anded with the corresponding enable bits. this bit will not be active if the enable bits are not set. writes to this bit will have no effect. 17 legacy_usb2_sts ? ro. this non-sticky read-only bit is a logical or of each of the smi status bits in the usb2 legacy support register anded with the corresponding enable bits. this bit will not be active if the enable bits are not set. writes to this bit will have no effect. 16 smbus smi status (smbus_smi_sts) ? r/wc. software clears this bit by writing a 1 to it. 0 = this bit is set from the 64 khz clock domain used by the smbus. software must wait at least 15.63 us after the initial assertion of this bit before clearing it. 1 = indicates that the smi# was caused by: 1. the smbus slave receiving a message that an smi# should be caused, or 2. the smbalert# signal goes active and the smb_smi_en bit is set and the smbalert_dis bit is cleared, or 3. the smbus slave receiving a host notify message and the host_notify_intren and the smb_smi_en bits are set, or 4. the intel ? 631xesb/632xesb i/o controller hub detecting the smlink_slave_smi command while in the s0 state. 15 serirq_smi_sts ? ro. 0 = smi# was not caused by the serirq decoder. 1 = indicates that the smi# was caused by the serirq decoder. note: this is not a sticky bit 14 periodic_sts ? r/wc. software clears this bit by writing a 1 to it. 0 = software clears this bit by writing a 1 to it. 1 = this bit is set at the rate determined by the per_smi_sel bits. if the periodic_en bit (pmbase + 30h, bit 14) is also set, the intel ? 631xesb/632xesb i/o controller hub generates an smi#. 13 tco_sts ? ro. software clears this bit by writing a 1 to it. 0 = smi# not caused by tco logic. 1 = indicates the smi# was caused by the tco logic. note that this is not a wake event. 12 device monitor status (devmon_sts) ? ro. 0 = smi# not caused by device monitor. 1 = set if bit 0 of the devact_sts register (pmbase + 44h) is set. the bit is not sticky, so writes to this bit will have no effect.
720 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.8.2.11 alt_gp_smi_en ? alternate gpi smi enable register i/o address: pmbase +38h attribute: r/w default value: 0000h size: 16-bit lockable: no usage: acpi or legacy power well: resume 11 microcontroller smi# status ( mcsmi_sts) ? r/wc. software clears this bit by writing a 1 to it. 0 = indicates that there has been no access to the power management microcontroller range (62h or 66h). 1 = set if there has been an access to the power management microcontroller range (62h or 66h). if this bit is set, and the mcsmi_en bit is also set, the intel ? 631xesb/632xesb i/o controller hub will generate an smi#. 10 gpe0_sts ? ro. this bit is a logical or of the bits in the alt_gp_smi_sts register that are also set up to cause an smi# (as indicated by the gpi_rout registers) and have the corresponding bit set in the alt_gp_smi_en register. bits that are not routed to cause an smi# will have no effect on this bit. 0 = smi# was not generated by a gpi assertion. 1 = smi# was generated by a gpi assertion. 9 gpe0_sts ? ro. this bit is a logical or of the bits 14:10, 8:2, and 0 in the gpe0_sts register (pmbase + 28h) that also have the corresponding bit set in the gpe0_en register (pmbase + 2ch). 0 = smi# was not generated by a gpe0 event. 1 = smi# was generated by a gpe0 event. 8 pm1_sts_reg ? ro. this is an ors of the bits in the acpi pm1 status register (offset pmbase+00h) that can cause an smi#. 0 = smi# was not generated by a pm1_sts event. 1 = smi# was generated by a pm1_sts event. 7 reserved 6 swsmi_tmr_sts ? r/wc. software clears this bit by writing a 1 to it. 0 = software smi# timer has not expired. 1 = set by the hardware when the software smi# timer expires. 5 reserved 4 slp_smi_sts ? r/wc. software clears this bit by writing a 1 to the bit location. 0 = no smi# caused by write of 1 to slp_en bit when slp_smi_en bit is also set. 1 = indicates an smi# was caused by a write of 1 to slp_en bit when slp_smi_en bit is also set. 3 legacy_usb_sts ? ro. this bit is a logical or of each of the smi status bits in the usb legacy keyboard/mouse control registers anded with the corresponding enable bits. this bit will not be active if the enable bits are not set. 0 = smi# was not generated by usb legacy event. 1 = smi# was generated by usb legacy event. 2 bios_sts ? r/wc. 0 = no smi# generated due to acpi software requesting attention. 1 = smi# was generated due to acpi software requesting attention (writing a 1 to the gbl_rls bit with the bios_en bit set). 1:0 reserved bit description bit description 15:0 alternate gpi smi enable ? r/w. these bits are used to enable the corresponding gpio to cause an smi#. for these bits to have any effect, the following must be true. ? the corresponding bit in the alt_gp_smi_en register is set. ? the corresponding gpi must be routed in the gpi_rout register to cause an smi. ? the corresponding gpio must be implemented.
intel ? 631xesb/632xesb i/o controller hub datasheet 721 lpc interface bridge registers (d31:f0) 21.8.2.12 alt_gp_smi_sts ? alternate gpi smi status register i/o address: pmbase +3ah attribute: r/wc default value: 0000h size: 16-bit lockable: no usage: acpi or legacy power well: resume 21.8.2.13 devact_sts ? device activity status register i/o address: pmbase +44h attribute: r/wc default value: 0000h size: 16-bit lockable: no usage: legacy only power well: core each bit indicates if an access has occurred to the corresponding device?s trap range, or for bits 6:9 if the corresponding pci interrupt is active. this register is used in conjunction with the periodic smi# timer to detect any system activity for legacy power management. the periodic smi# timer indicates if it is the right time to read the devact_sts register (pmbase + 44h). note: software clears bits that are set in this register by writing a 1 to the bit position. bit description 15:0 alternate gpi smi status ? r/wc. these bits report the status of the corresponding gpis. 0 = inactive. software clears this bit by writing a 1 to it. 1 = active these bits are sticky. if the following conditions are true, then an smi# will be generated and the gpe0_sts bit set: ? the corresponding bit in the alt_gpi_smi_en register (pmbase + 38h) is set ? the corresponding gpi must be routed in the gpi_rout register to cause an smi. ? the corresponding gpio must be implemented. all bits are in the resume well. default for these bits is dependent on the state of the gpi pins. bit description 15:13 reserved 12 kbc_act_sts ? r/wc. kbc (60/64h). 0 = indicates that there has been no access to this device?s i/o range. 1 = this device?s i/o range has been accessed. clear this bit by writing a 1 to the bit location. 11:10 reserved 9 pirqdh_act_sts ? r/wc. pirq[d or h]. 0 = the corresponding pci interrupts have not been active. 1 = at least one of the corresponding pci interrupts has been active. clear this bit by writing a 1 to the bit location. 8 pirqcg_act_sts ? r/wc. pirq[c or g]. 0 = the corresponding pci interrupts have not been active. 1 = at least one of the corresponding pci interrupts has been active. clear this bit by writing a 1 to the bit location. 7 pirqbf_act_sts ? r/wc. pirq[b or f]. 0 = the corresponding pci interrupts have not been active. 1 = at least one of the corresponding pci interrupts has been active. clear this bit by writing a 1 to the bit location.
722 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.8.2.14 c3_res ? c3 residency register i/o address: pmbase +54h attribute: ro default value 00000000h size: 32-bit lockable: no usage: acpi/legacy power well: core 21.9 system management tco registers (d31:f0) the tco logic is accessed via registers mapped to the pci configuration space (device 31:function 0) and the system i/o space. for tco pci configuration registers, see lpc device 31:function 0 pci configuration registers. 21.9.1 tco register i/o map the tco i/o registers reside in a 32-byte range pointed to by a tcobase value, which is, pmbase + 60h in the pci config space. the following table shows the mapping of the registers within that 32-byte range. each register is described in the following sections. 6 pirqae_act_sts ? r/wc. pirq[a or e]. 0 = the corresponding pci interrupts have not been active. 1 = at least one of the corresponding pci interrupts has been active. clear this bit by writing a 1 to the bit location. 5:1 reserved 0 ide_act_sts ? r/wc. ide primary drive 0 and drive 1. 0 = indicates that there has been no access to this device?s i/o range. 1 = this device?s i/o range has been accessed. the enable bit is in the atc register (d31:f1:offset c0h). clear this bit by writing a 1 to the bit location. bit description bit description 31:00 reserved table 21-11. tco i/o register address map (sheet 1 of 2) tcobase + offset mnemonic register name default type 00h?01h tco_rld tco timer reload and current value 0000h r/w 02h tco_dat_in tco data in 00h r/w 03h tco_dat_out tco data out 00h r/w 04h?05h tco1_sts tco1 status 0000h r/wc, ro 06h?07h tco2_sts tco2 status 0000h r/w, r/wc 08h?09h tco1_cnt tco1 control 0000h r/w, r/w (special), r/wc 0ah?0bh tco2_cnt tco2 control 0008h r/w 0ch?0dh tco_message1, tco_message2 tco message 1 and 2 00h r/w 0eh tco_wdcnt watchdog control register 00h r/w 0fh ? reserved ? ? 10h sw_irq_gen software irq generation register 11h r/w
intel ? 631xesb/632xesb i/o controller hub datasheet 723 lpc interface bridge registers (d31:f0) 21.9.2 tco_rld ? tco timer reload and current value register i/o address: tcobase +00h attribute: r/w default value: 0000h size: 16-bit lockable: no power well: core 21.9.3 tco_dat_in ? tco data in register i/o address: tcobase +02h attribute: r/w default value: 00h size: 8-bit lockable: no power well: core 21.9.4 tco_dat_out ? tco data out register i/o address: tcobase +03h attribute: r/w default value: 00h size: 8-bit lockable: no power well: core 21.9.5 tco1_sts ? tco1 status register i/o address: tcobase +04h attribute: r/wc, ro default value: 0000h size: 16-bit lockable: no power well: core (except bit 7, in rtc) 11h ? reserved ? ? 12h?13h tco_tmr tco timer initial value 04h r/w 14h?1fh ? reserved ? ? table 21-11. tco i/o register address map (sheet 2 of 2) tcobase + offset mnemonic register name default type bit description 15:10 reserved 9:0 tco timer value ? r/w. reading this register will return the current count of the tco timer. writing any value to this register will reload the timer to prevent the timeout. bit description 7:0 tco data in value ? r/w. this data register field is used for passing commands from the os to the smi handler. writes to this register will cause an smi and set the sw_tco_smi bit in the tco1_sts register (d31:f0:04h). bit description 7:0 tco data out value ? r/w. this data register field is used for passing commands from the smi handler to the os. writes to this register will se t the tco_int_sts bit in the tco_sts register. it will also cause an interrupt, as selected by the tco_int_sel bits. bit description 15:13 reserved 12 esiserr_sts ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = intel ? 631xesb/632xesb i/o controller hub received a esi special cycle message via esi indicating that it wants to cause an serr#. the software must read the (g)mch to determine the reason for the serr#. 11 reserved
724 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 10 esismi_sts ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = intel ? 631xesb/632xesb i/o controller hub received a esi special cycle message via esi indicating that it wants to cause an smi. the software must read the (g)mch to determine the reason for the smi. 9 esisci_sts ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = intel ? 631xesb/632xesb i/o controller hub received a esi special cycle message via esi indicating that it wants to cause an sci. the software must read the (g)mch to determine the reason for the sci. 8 bioswr_sts ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = intel ? 631xesb/632xesb i/o controller hub sets this bit and generates and smi# to indicate an illegal attempt to write to the bios. this occurs when either: a) the bioswp bit is changed from 0 to 1 and the bld bit is also set, or b) any write is attempted to the bios and the bioswp bit is also set. note: on write cycles attempted to the 4 mb lower alias to the bios space, the bioswr_sts will not be set. 7 newcentury_sts ? r/wc. this bit is in the rtc well. 0 = cleared by writing a 1 to the bit position or by rtcrst# going active. 1 = this bit is set when the year byte (rtc i/o space, index offset 09h) rolls over from 99 to 00. setting this bit will cause an smi# (but not a wake event). note: the newcentury_sts bit is not valid when the rtc battery is first installed (or when rtc power has not been maintained). software can determine if rtc power has not been maintained by checking the rtc_pwr_sts bit (d31:f0:a4h, bit 2), or by other means (such as a checksum on rtc ram). if rtc power is determined to have not been maintained, bios should set the time to a legal value and then clear the newcentury_sts bit. the newcentury_sts bit may take up to 3 rtc clocks for the bit to be cleared after a 1 is written to the bit to clear it. after writing a 1 to this bit, software should not exit the smi handler until verifying that the bit has actually been cleared. this will ensure that the smi is not re-entered. 6:4 reserved 3 timeout ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = set by intel ? 631xesb/632xesb i/o controller hub to indicate that the smi was caused by the tco timer reaching 0. 2 tco_int_sts ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = smi handler caused the interrupt by writing to the tco_dat_out register (tcobase + 03h). 1 sw_tco_smi ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = software caused an smi# by writing to the tco_dat_in register (tcobase + 02h). 0 nmi2smi_sts ? ro. 0 = cleared by clearing the associated nmi status bit. 1 = set by the intel ? 631xesb/632xesb i/o controller hub when an smi# occurs because an event occurred that would otherwise have caused an nmi (because nmi2smi_en is set). bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 725 lpc interface bridge registers (d31:f0) 21.9.6 tco2_sts ? tco2 status register i/o address: tcobase +06h attribute: r/w, r/wc default value: 0000h size: 16-bit lockable: no power well: resume (except bit 0, in rtc) bit description 15:5 reserved 4 smlink slave smi status (smlink_slv_smi_sts) ? r/wc. allow the software to go directly into pre-determined sleep state. this avoids race conditions. software clears this bit by writing a 1 to it. 0 = the bit is reset by rsmrst#, but not due to the pci reset associated with exit from s3?s5 states. 1 = intel ? 631xesb/632xesb i/o controller hub sets this bit to 1 when it receives the smi message on the smlink's slave interface. 3 reserved 2 boot_sts ? r/wc. 0 = cleared by intel ? 631xesb/632xesb i/o controller hub based on rsmrst# or by software writing a 1 to this bit. note that software should first clear the second_to_sts bit before writing a 1 to clear the boot_sts bit. 1 = set to 1 when the second_to_sts bit goes from 0 to 1 and the processor has not fetched the first instruction. if rebooting due to a second tco timer time out, and if the boot_sts bit is set, the intel ? 631xesb/632xesb i/o controller hub will reboot using the ?safe? multiplier (1111). this allows the system to recover from a processor freq uency multiplier that is too high, and allows the bios to check the boot_sts bit at boot. if the bi t is set and the frequency multiplier is 1111, then the bios knows that the processor has been programmed to an illegal multiplier. 1 second_to_sts ? r/wc. 0 = software clears this bit by writing a 1 to it, or by a rsmrst#. 1 = intel ? 631xesb/632xesb i/o controller hub sets this bit to 1 to indicate that the timeout bit had been (or is currently) set and a second timeout occurred before the tco_rld register was written. if this bit is set and the no_reboot config bit is 0, then the intel ? 631xesb/632xesb i/o controller hub will reboot the system after the second timeout. the reboot is done by asserting pltrst#. 0 intruder detect (intrd_det) ? r/wc. 0 = software clears this bit by writing a 1 to it, or by rtcrst# assertion. 1 = set by intel ? 631xesb/632xesb i/o controller hub to indicate that an intrusion was detected. this bit is set even if the system is in g3 state. note: this bit has a recovery time. after writing a 1 to this bit position (to clear it), the bit may be read back as a 1 for up 65 microseconds before it is read as a 0. software must be aware of this recovery time when reading this bit after clearing it. note: if the intruder# signal is active when the software attempts to clear the intrd_det bit, the bit will remain as a 1, and the smi# will be generated again immediately. the smi handler can clear the intrd_sel bits (tcobase + 0ah, bits 2:1), to avoid further smis. however, if the intruder# signals goes inactive and then active again, there will not be further smi?s (because the intrd_sel bits would select that no smi# be generated). note: if the intruder# signal goes inactive some point after the intrd_det bit is written as a 1, then the intrd_det signal will go to a 0 when intruder# input signal goes inactive. note that this is slightly different than a classic sticky bit, since most sticky bits would remain active indefinitely when the signal goes active and would immediately go inactive when a 1 is written to the bit
726 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.9.7 tco1_cnt ? tco1 control register i/o address: tcobase +08h attribute: r/w, r/w (special), r/wc default value: 0000h size: 16-bit lockable: no power well: core bit description 15:13 reserved 12 tco_lock ? r/w (special). when set to 1, this bit prevents writes from changing the tco_en bit (in offset 30h of power management i/o space). once this bit is set to 1, it can not be cleared by software writing a 0 to this bit location. a core-well reset is required to change this bit from 1 to 0. this bit defaults to 0. 11 tco timer halt (tco_tmr_hlt) ? r/w. 0 = the tco timer is enabled to count. 1 = the tco timer will halt. it will not count, and thus cannot reach a value that will cause an smi# or set the second_to_sts bit. when set, this bit will prevent rebooting and prevent alert on lan event messages from being transmitted on the smlink (but not alert on lan* heartbeat messages). 10 send_now ? r/w (special). 0 = the intel ? 631xesb/632xesb i/o controller hub will clear this bit when it has completed sending the message. software must not set this bit to 1 again until the intel ? 631xesb/ 632xesb i/o controller hub has set it back to 0. 1 = writing a 1 to this bit will cause the intel ? 631xesb/632xesb i/o controller hub to send an alert on lan event message over the smlink interface, with the software event bit set. setting the send_now bit causes the intel ? 631xesb/632xesb i/o controller hub integrated lan controller to reset, which can have unpredictable side-effects. unless software protects against these side effects, software should not attempt to set this bit. 9 nmi2smi_en ? r/w. 0 = normal nmi functionality. 1 = forces all nmis to instead cause smis. the fu nctionality of this bit is dependent upon the settings of the nmi_en bit and the gbl_smi_ en bit as detailed in the following table: nmi_engbl_smi_endescription 00no smi# at all because gbl_smi_en = 0 0 1 smi# will be caused due to nmi events 10no smi# at all because gbl_smi_en = 0 1 1 no smi# due to nmi because nmi_en = 1 8 nmi_now ? r/wc. 0 = software clears this bit by writing a 1 to it. the nmi handler is expected to clear this bit. another nmi will not be generated until the bit is cleared. 1 = writing a 1 to this bit causes an nmi. this allows the bios or smi handler to force an entry to the nmi handler. 7:0 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 727 lpc interface bridge registers (d31:f0) 21.9.8 tco2_cnt ? tco2 control register i/o address: tcobase +0ah attribute: r/w default value: 0008h size: 16-bit lockable: no power well: resume 21.9.9 tco_message1 and tco_message2 registers i/o address: tcobase +0ch (message 1) attribute: r/w tcobase +0dh (message 2) default value: 00h size: 8-bit lockable: no power well: resume 21.9.10 tco_wdcnt ? tco watchdog control register offset address: tcobase + 0eh attribute: r/w default value: 00h size: 8 bits power well: resume bit description 15:6 reserved 5:4 os_policy ? r/w. os-based software writes to these bits to select the policy that the bios will use after the platform resets due the wdt. the following convention is recommended for the bios and os: 00 = boot normally 01 = shut down 10 = don?t load os. hold in pre-boot st ate and use lan to determine next step 11 = reserved note: these are just scratchpad bits. they should not be reset when the tco logic resets the platform due to watchdog timer. 3 gpi11_alert_disable ? r/w. at reset (via rsmrst# asserted) this bit is set and gpi[11] alerts are disabled. 0 = enable. 1 = disable gpi[11]/smbalert# as an alert source for the heartbeats and the smbus slave. 2:1 intrd_sel ? r/w. this field selects the action to take if the intruder# signal goes active. 00 = no interrupt or smi# 01 = interrupt (as selected by tco_int_sel). 10 = smi 11 = reserved 0 reserved bit description 7:0 tco_message[ n ] ? r/w. the value written into this register will be sent out via the smlink interface in the message field of the alert on lan message. bios can write to this register to indicate its boot progress which can be monitored externally bit description 7:0 watchdog status (wdstatus) ? r/w. the value written to this register will be sent in the alert on lan message on the smlink interface. it can be used by the bios or system management software to indicate more details on the boot progress. this register will be reset to the default of 00h based on rsmrst# (but not pci reset).
728 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.9.11 sw_irq_gen ? software irq generation register offset address: tcobase + 10h attribute: r/w default value: 03h size: 8 bits power well: core 21.9.12 tco_tmr ? tco timer initial value register i/o address: tcobase +12h attribute: r/w default value: 0004h size: 16-bit lockable: no power well: core 21.10 general purpose i/o registers (d31:f0) the control for the general purpose i/o signals is handled through a separate 64-byte i/o space. the base offset for this space is selected by the gpiobase register. 21.10.1 gpio register i/o address map bit description 7:2 reserved 1 irq12_cause ? r/w. the state of this bit is logically anded with the irq12 signal as received by the intel ? 631xesb/632xesb i/o controller hub?s serirq logic. this bit must be a 1 (default) if the intel ? 631xesb/632xesb i/o controller hub is expected to receive irq12 assertions from a serirq device. 0 irq1_cause ? r/w. the state of this bit is logically anded with the irq1 signal as received by the intel ? 631xesb/632xesb i/o controller hub?s serirq logic. this bit must be a 1 (default) if the intel ? 631xesb/632xesb i/o controller hub is expected to receive irq1 assertions from a serirq device. bit description 15:10 reserved 9:0 tco timer initial value ? r/w. value that is loaded into the timer each time the tco_rld register is written. values of 0000h or 0001h will be ignored and should not be attempted. the timer is clocked at approximately 0.6 seconds, and thus allows timeouts ranging from 1.2 second to 613.8 seconds. note: the timer has an error of 1 tick (0.6s). the tco timer will only count down in the s0 state. table 21-12. registers to control gpio address map (sheet 1 of 2) gpiobase + offset mnemonic register name default access general registers 00?03h gpio_use_sel gpio use select 1b0c01c0h r/w 04?07h gp_io_sel gpio input/output select e400 ffffh r/w 08?0bh ? reserved ? ? 0c?0fh gp_lvl gpio level for input or output ff3f0000h r/w 10?13h reserved ? ? output control registers 14?17h ? reserved ? ? 18?1bh gpo_blink gpio blink enable 00040000h r/w
intel ? 631xesb/632xesb i/o controller hub datasheet 729 lpc interface bridge registers (d31:f0) 21.10.2 gpio_use_sel ? gpio use select register offset address: gpiobase + 00h attribute:r/w default value: 1b0c01c0h size: 32-bit lockable: no power well:core for 0:7, 12:13, 16:21,, 23, 26, 29:31 resume for 8:11, 14:15, 24, 25, 27, 28 21.10.3 gp_io_sel ? gpio input/output select register offset address: gpiobase +04h attribute: r/w default value: e400ffffh size: 32-bit lockable: no power well: resume 1c?1fh ? reserved ? ? input control registers 20?2bh ? reserved ? ? 2c?2fh gpi_inv gpio signal invert 00000000h r/w 30?33h gpio_use_sel2 gpio use select 2 [63:32] 00000006h r/w 34?37h gp_io_sel2 gpio input/output select 2 [63:32] 00000300h r/w 38?3bh gp_lvl2 gpio level for input or output 2 [63:32] 00030207h r/w table 21-12. registers to control gpio address map (sheet 2 of 2) gpiobase + offset mnemonic register name default access bit description 31:29 26, 23, 21, 20 15:14, 13:9, 5:0 gpio_use_sel[31:29, 26, 23, 21, 20, 15:14, 13:9, 5:0] ? r/w. each bit in this register enables the corresponding gpio (if it exists) to be used as a gpio, rather than for the native function. 0 = signal used as native function. 1 = signal used as a gpio. notes: 1. the following bit is not implemented because there is no corresponding gpio: 22. 2. the following bits are always 1 because they are unmuxed: 6, 7, 8, 18, 19, 24, 25, 27, 28. 3. bit 16 is not implemented because the gpio selection will be controlled by bit 0 (req/gnt pair) 4. bit 17 is not implemented because the gpio selection will be controlled by bit 1 (req/gnt pair) 5. if gpio[n] does not exist, then the bit in this register will always read as 0 and writes will have no effect. 6. after a full reset (rsmrst#) all multiplexed signals in the resume and core wells are configured as their native function rather than as a gpio. after just a pltrst#, the gpio in the core well are configured as their native function. 7. when configured to gpio mode, the muxing logic should present the inactive state to native logic that uses the pin as an input. bit description 31:29 always 1. these gpis are fixed as inputs. 28:27 gp_io_sel[28:27] ? r/w. when set to a 1, the corresponding gpio signal (if enabled in the gpio_use_sel register) is programmed as an input. when set to 0, the gpio signal is programmed as an output. 0 = output. the corresponding gpio signal is an output. 1 = input. the corresponding gpio signal is an input. 26 always 1. this gpi is fixed as an input.
730 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.10.4 gp_lvl ? gpio level fo r input or output register offset address: gpiobase +0ch attribute: r/w default value: ff3f0000h size: 32-bit lockable: no power well: see bit descriptions 25:24 gp_io_sel[25:24] ? r/w. when set to a 1, the corresponding gpio signal (if enabled in the gpio_use_sel register) is programmed as an input. when set to 0, the gpio signal is programmed as an output. 0 = output. the corresponding gpio signal is an output. 1 = input. the corresponding gpio signal is an input. 23:16 always 0. the gpos are fixed as outputs. 15:0 always 1. these gpis are fixed as inputs. bit description bit description 31:29 gp_lvl[31:29] ? r/w. these bits correspond to input-on ly gpi in the core well. the corresponding gp_lvl bit reflects the state of the input signal (1 = high, 0 = low). writes to these bits will have no effect. since these bits correspond to gpi that are in th e core well, these bits will be reset by pltrst#. 0 = low 1 = high 28:27 gp_lvl[28:27] ? r/w. if gpio[n] is programmed to be an output (via the corresponding bit in the gp_io_sel register), then the corresponding gp_lvl[n] bit can be updated by software to drive a high or low value on the output pin. 1 = high, 0 = low. if gpio[n] is programmed as an input, then the corresponding gp_lvl bit reflects the state of the input signal (1 = high, 0 = low.). writes will have no effect. since these bits correspond to gpio that are in the resume well, these bits will be reset by rsmrst# and also by a write to the cf9h register. 0 = low 1 = high 26 gp_lvl[26] ? r/w. this bit corresponds to an input-only gpi in the core well. the corresponding gp_lvl bit reflects the state of the input signal (1 = high, 0 = low). writes to this bit will have no effect. since this bit correspond to a gpi that is in the core well, this bit will be reset by pltrst#. 0 = low 1 = high 25:24 gp_lvl[25:24] ? r/w. if gpio[n] is programmed to be an output (via the corresponding bit in the gp_io_sel register), then the corresponding gp_lvl[n] bit can be updated by software to drive a high or low value on the output pin. 1 = high, 0 = low. if gpio[n] is programmed as an input, then the corresponding gp_lvl bit reflects the state of the input signal (1 = high, 0 = low.). writes will have no effect. since these bits correspond to gpio that are in the resume well, these bits will be reset by rsmrst# and also by a write to the cf9h register. 0 = low 1 = high 23:16 gp_lvl[23:16] ? r/w. these bits can be updated by software to drive a high or low value on the output pin. these bits correspond to gpio that are in the core well, and will be reset to their default values by pltrst#. 0 = low 1 = high 15:0 reserved. (these bits are not needed, as the level of general purpose inputs can be read through the registers in the acpi i/o space).
intel ? 631xesb/632xesb i/o controller hub datasheet 731 lpc interface bridge registers (d31:f0) 21.10.5 gpo_blink ? gpo blink enable register offset address: gpiobase +18h attribute: r/w default value: 0004 0000h size: 32-bit lockable: no power well: see bit description note: gpio18 will blink by default immediately after reset. this signal could be connected to an led to indicate a failed boot (by programming bios to clear gp_blink18 after successful post). 21.10.6 gpi_inv ? gpio signal invert register offset address: gpiobase +2ch attribute: r/w default value: 00000000h size: 32-bit lockable: no power well: core 7:0, 12, 13 resume 15:14, 11:8 bit description 28:27, 25 gp_blink[28:27, 25] ? r/w. the setting of this bit has no effect if the corresponding gpio signal is programmed as an input. 0 = the corresponding gpio will function normally. 1 = if the corresponding gpio is programmed as an output, the output signal will blink at a rate of approximately once per second. the high and low times have approximately 0.5 seconds each. the gp_lvl bit is not altered when this bit is set. the value of the corresponding gp_lvl bit remains unchanged during the blink process, and does not effect the blink in any way. the gp_lvl bit is not altered when programmed to blink. it will remain at its previous value. these bits correspond to gpio in the resume well. these bits revert to the default value based on rsmrst# or a write to the cf9h register (but not just on pltrst#). 19:18 gp_blink[19:18] ? r/w. these bits correspond to gpio that are in the core well, and will be reset to their default values by pltrst#. 0 = the corresponding gpio will function normally. 1 = the output signal will blink at a rate of approximately once per second. the high and low times are approximately 0.5 seconds each. the gp_lvl bit is not altered when this bit is set. bit description 31:16 reserved 15:14 gp_inv[n] ? r/w. these bits are used to allow both active-low and active-high inputs to cause smi# or sci. note that in the s0 or s1 state, the input signal must be active for at least two pci clocks to ensure detection by the intel ? 631xesb/632xesb i/o controller hub. in the s3, s4 or s5 states the input signal must be active for at least 2 rtc clocks to ensure detection. the setting of these bits has no effect if the corresponding gpio is programmed as an output. these bits correspond to gpi that are in the resume well, an d will be reset to their default values by rsmrst# or by a write to the cf9h register. 0 = the corresponding gpi_sts bit is set when the intel ? 631xesb/632xesb i/o controller hub detects the state of the input pin to be high. 1 = the corresponding gpi_sts bit is set when the intel ? 631xesb/632xesb i/o controller hub detects the state of the input pin to be low.
732 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0) 21.10.7 gpio_use_sel2 ? gpio use select 2 register[63:32] offset address: gpiobase +30h attribute: r/w default value: 00000006h size: 32-bit lockable: no power well: cpu i/o for 17, core for 16:0 13:12 gp_inv[n] ? r/w. these bits are used to allow both active-low and active-high inputs to cause smi# or sci. note that in the s0 or s1 state, the input signal must be active for at least two pci clocks to ensure detection by the intel ? 631xesb/632xesb i/o controller hub. these bits correspond to gpi that are in the core well, and will be reset to their default values by pltrst#. 0 = the corresponding gpi_sts bit is set when the intel ? 631xesb/632xesb i/o controller hub detects the state of the input pin to be high. 1 = the corresponding gpi_sts bit is set when the intel ? 631xesb/632xesb i/o controller hub detects the state of the input pin to be low. 11:8 gp_inv[n] ? r/w. these bits are used to allow both active-low and active-high inputs to cause smi# or sci. note that in the s0 or s1 state, the input signal must be active for at least two pci clocks to ensure detection by the intel ? 631xesb/632xesb i/o controller hub. in the s3, s4 or s5 states the input signal must be active for at least 2 rtc clocks to ensure detection. the setting of these bits has no effect if the corresponding gpio is programmed as an output. these bits correspond to gpi that are in the resume well, and will be reset to their default values by rsmrst# or by a write to the cf9h register. 0 = the corresponding gpi_sts bit is set when the intel ? 631xesb/632xesb i/o controller hub detects the state of the input pin to be high. 1 = the corresponding gpi_sts bit is set when the intel ? 631xesb/632xesb i/o controller hub detects the state of the input pin to be low. 7:0 gp_inv[n] ? r/w. these bits are used to allow both active-low and active-high inputs to cause smi# or sci. note that in the s0 or s1 state, the input signal must be active for at least two pci clocks to ensure detection by the intel ? 631xesb/632xesb i/o controller hub. the setting of these bits will have no effect if the corresponding gpio is programmed as an output. these bits correspond to gpi that are in the core well, and will be reset to their default values by pltrst#. 0 = the corresponding gpi_sts bit is set when the intel ? 631xesb/632xesb i/o controller hub detects the state of the input pin to be high. 1 = the corresponding gpi_sts bit is set when the intel ? 631xesb/632xesb i/o controller hub detects the state of the input pin to be low. bit description bit description 17, 9:8, 0 gpio_use_sel2[49, 41:40, 32] ? r/w. each bit in this register enables the corresponding gpio (if it exists) to be used as a gpio, rather than for the native function. 0 = signal used as native function. 1 = signal used as a gpio. after a full reset (rsmrst#) all multiplexed signals in the resume and core wells are configured as a gpio rather than as their native function. after just a pltrst#, the gpio in the core well are configured as gpio. notes: 1. the following bits are not implemented because there is no corresponding gpio: 3:7, 10:15, 18:31. 2. the following bits are always 1 because they are unmuxed: 1:2 3. bit 16 is not implemented because the gpio selection will be controlled by bit 8 (req/gnt pair) 4. if gpio[n] does not exist, then the bit in this register will always read as 0 and writes will have no effect.
intel ? 631xesb/632xesb i/o controller hub datasheet 733 lpc interface bridge registers (d31:f0) 21.10.8 gp_io_sel2 ? gpio input/output select 2 register[63:32] offset address: gpiobase +34h attribute: r/w default value: 00000300h size: 32-bit lockable: no power well: core 21.10.9 gp_lvl2 ? gpio level for input or output 2 register[63:32] offset address: gpiobase +38h attribute: r/w default value: 00030207h size: 32-bit lockable: no power well: see below bit description 31:18 always 0. no corresponding gpio. 17:16 always 0. outputs. 15:10 always 0. no corresponding gpio. 9:8 always 1. inputs. 7:3 always 0. no corresponding gpio. 2:0 gp_io_sel2[34:32] ? r/w. 0 = gpio signal is programmed as an output. 1 = corresponding gpio signal (if enabled in the gpio_use_sel2 register) is programmed as an input. bit description 31:18 reserved. read-only 0 17:16 gp_lvl[49:48] ? r/w. the corresponding gp_lvl[n] bit can be updated by software to drive a high or low value on the output pin. since these bits correspond to gpio that are in the processor i/ o and core well, respectively, these bits will be reset by pltrst#. 0 = low 1 = high 15:10 reserved. read-only 0 9:8 gp_lvl[41:40] ? r/w. the corresponding gp_lvl[n] bit reflects the state of the input signal. writes will have no effect. since these bits correspon d to gpio that are in the core well, these bits will be reset by pltrst#. 0 = low 1 = high 7:3 reserved. read-only 0 2:0 gp_lvl[34:32] ? r/w. if gpion is programmed to be an ou tput (via the corresponding bit in the gp_io_sel register), then the corresponding gp_lvl[n] bit can be updated by software to drive a high or low value on the output pin. if gpion is programmed as an input, then the corresponding gp_lvl bit reflects the state of the input signal (1 = high, 0 = low). writes will have no effect. 0 = low 1 = high since these bits correspond to gpio that are in th e core well, these bits will be reset by pltrst#.
734 intel ? 631xesb/632xesb i/o controller hub datasheet lpc interface bridge registers (d31:f0)
intel ? 631xesb/632xesb i/o controller hub datasheet 735 ide controller registers (d31:f1) 22 ide controller registers (d31:f1) 22.1 pci configuration registers (ide ? d31:f1) note: address locations that are not shown should be treated as reserved (see section 2.3 for details). all of the ide registers are in the core well. none of the registers can be locked. note: the intel ? 631xesb/632xesb i/o controller hub ide controller is not arbitrated as a pci device; therefore, it does not need a master latency timer. table 22-1. ide controller pci register address map (ide-d31:f1) offset mnemonic register name default type 00?01h vid vendor identification 8086h ro 02?03h did device identification 269eh ro 04?05h pcicmd pci command 00h r/w, ro 06?07h pcists pci status 0280h r/w, ro 08h rid revision identification see register description. ro 09h pi programming interface 8ah r/w, ro 0ah scc sub class code 01h ro 0bh bcc base class code 01h ro 0dh pmlt primary master latency timer 00h ro 10?13h pcmd_bar primary command block base address 00000001h r/w, ro 14?17h pcnl_bar primary control block base address 00000001h r/w, ro 18?1bh scmd_bar secondary command block base address 00000001h r/w, ro 1c?1fh scnl_bar secondary control block base address 00000001h r/w, ro 20?23h bm_base bus master base address 00000001h r/w, ro 2c?2dh ide_svid subsystem vendor id 00h r/wo 2e?2fh ide_sid subsystem id 00h r/wo 3c intr_ln interrupt line see register description. r/w 3d intr_pn interrupt pin 01h ro 40?41h ide_timp primary ide timing 0000h r/w 42?43h ide_tims secondary ide timing 0000h r/w 44h slv_idetim slave ide timing 00h r/w 48h sdma_cnt synchronous dma control 00h r/w 4a?4bh sdma_tim synchronous dma timing 0000h r/w 54h ide_config ide i/o configuration 00h r/w c0h atc apm trapping control 00h r/w c4h ats apm trapping status 00h r/wc
736 intel ? 631xesb/632xesb i/o controller hub datasheet ide controller registers (d31:f1) 22.1.1 vid ? vendor identification register (ide ? d31:f1) offset address: 00?01h attribute: ro default value: 8086h size: 16-bit lockable: no power well: core 22.1.2 did ? device identification register (ide ? d31:f1) offset address: 02?03h attribute: ro default value: 269eh size: 16-bit lockable: no power well: core 22.1.3 pcicmd ? pci command register (ide ? d31:f1) address offset: 04h?05h attribute: ro, r/w default value: 00h size: 16 bits bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel. intel vid = 8086h bit description 15:0 device id ? ro. this is a 16-bit value assigned to the intel ? 631xesb/632xesb i/o controller hub ide controller. bit description 15:11 reserved 10 interrupt disable (id) ? r/w. 0 = enables the ide controller to assert inta# (native mode) or irq14/15 (legacy mode). 1 = disable. the interrupt will be deasserted. 9 fast back to back enable (fbe) ? ro. reserved as 0. 8 serr# enable (serr_en) ? ro. reserved as 0. 7 wait cycle control (wcc) ? ro. reserved as 0. 6 parity error response (per) ? ro. reserved as 0. 5 vga palette snoop (vps) ? ro. reserved as 0. 4 postable memory write enable (pmwe) ? ro. reserved as 0. 3 special cycle enable (sce) ? ro. reserved as 0. 2 bus master enable (bme) ? r/w. controls the intel ? 631xesb/632xesb i/o controller hub?s ability to act as a pci master for ide bus master transfers. 1 memory space enable (mse) ? r/w. 0 = disables access. 1 = enables access to the ide expansion memory range. the exbar register (offset 24h) must be programmed before this bit is set. note: bios should set this bit to a 1. 0 i/o space enable (iose) ? r/w. this bit controls access to the i/o space registers. 0 = disables access to the legacy or native ide ports (both primary and secondary) as well as the bus master io registers. 1 = enable. note that the base address register for the bus master registers should be programmed before this bit is set. notes: 1. separate bits are provided (ide decode enable, in the ide timing register) to independently disable the primary or secondary i/o spaces. 2. when this bit is 0 and the ide controller is in native mode, the interrupt pin register (see section 22.1.19 ) will be masked (the interrupt will not be asserted). if an interrupt occurs while the masking is in place and the interrupt is still active when the masking ends, the interrupt will be allowed to be asserted.
intel ? 631xesb/632xesb i/o controller hub datasheet 737 ide controller registers (d31:f1) 22.1.4 pcists ? pci status register (ide ? d31:f1) address offset: 06?07h attribute: r/wc, ro default value: 0280h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. 22.1.5 rid ? revision identification register (ide ? d31:f1) offset address: 08h attribute: ro default value: see bit description size: 8 bits 22.1.6 pi ? programming interface register (ide ? d31:f1) address offset: 09h attribute: ro default value: 8ah size: 8 bits bit description 15 detected parity error (dpe) ? ro. reserved as 0. 14 signaled system error (sse) ? ro. reserved as 0. 13 received master abort (rma) ? r/wc. 0 = master abort not generated by bus master ide interface function. 1 = bus master ide interface function, as a master, generated a master abort. 12 reserved as 0 ? ro. 11 reserved as 0 ? ro. 10:9 devsel# timing status (dev_sts) ? ro. 01 = hardwired; however, the intel ? 631xesb/632xesb i/o controller hub does not have a real devsel# signal associated with the ide unit, so these bits have no effect. 8 data parity error detected (dped) ? ro. reserved as 0. 7 fast back to back capable (fb2bc) ? ro. reserved as 1. 6 user definable features (udf) ? ro. reserved as 0. 5 66mhz capable (66mhz_cap) ? ro. reserved as 0. 4 reserved 3 interrupt status (ints) ? ro. this bit is independent of the state of the interrupt disable bit in the command register. 0 = interrupt is cleared. 1 = interrupt/msi is asserted. 2:0 reserved bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register bit description 7 this read-only bit is a 1 to indicate that the intel ? 631xesb/632xesb i/o controller hub supports bus master operation 6:4 reserved. hardwired to 000b. 3 sop_mode_cap ? ro. this read-only bit is a 1 to indicate that the secondary controller supports both legacy and native modes.
738 intel ? 631xesb/632xesb i/o controller hub datasheet ide controller registers (d31:f1) 22.1.7 scc ? sub class code register (ide ? d31:f1) address offset: 0ah attribute: ro default value: 01h size: 8 bits 22.1.8 bcc ? base class code register (ide ? d31:f1) address offset: 0bh attribute: ro default value: 01h size: 8 bits 22.1.9 cls ? cache line size register (ide ? d31:f1) address offset: 0ch attribute: ro default value: 00h size: 8 bits 22.1.10 pmlt ? primary master latency timer register (ide ? d31:f1) address offset: 0dh attribute: ro default value: 00h size: 8 bits 2 sop_mode_sel ? r/w. this read/write bit determines the mode that the secondary ide channel is operating in. 0 = legacy-pci mode (default) 1 = native-pci mode 1 pop_mode_cap ? ro. this read-only bit is a 1 to indicate that the primary controller supports both legacy and native modes. 0 pop_mode_sel ? r/w. this read/write bits determines the mode that the primary ide channel is operating in. 0 = legacy-pci mode (default) 1 = native-pci mode bit description 7:0 sub class code (scc) ? ro. 01h = ide device, in the context of a mass storage device. bit description 7:0 base class code (bcc) ? ro. 01 = mass storage device bit description 7:0 cache line size (cls) ? ro. 00h =hardwired. the ide controller is implemented internally so this register has no meaning. bit description 7:0 master latency timer count (mltc) ? ro. 00h =hardwired. the ide controller is implemented internally, and is not arbitrated as a pci device, so it does not need a master latency timer.
intel ? 631xesb/632xesb i/o controller hub datasheet 739 ide controller registers (d31:f1) 22.1.11 pcmd_bar ? primary command block base address register (ide ? d31:f1) address offset: 10h?13h attribute: r/w, ro default value: 00000001h size: 32 bits . note: this 8-byte i/o space is used in native mode for the primary controller?s command block. 22.1.12 pcnl_bar ? primary control block base address register (ide ? d31:f1) address offset: 14h?17h attribute: r/w, ro default value: 00000001h size: 32 bits . note: this 4-byte i/o space is used in native mode for the primary controller?s command block. 22.1.13 scmd_bar ? secondary command block base address register (ide d31:f1) address offset: 18h?1bh attribute: r/w, ro default value: 00000001h size: 32 bits note: this 4-byte i/o space is used in native mode for the secondary controller?s command block. 22.1.14 scnl_bar ? secondary control block base address register (ide d31:f1) address offset: 1ch?1fh attribute: r/w, ro default value: 00000001h size: 32 bits bit description 31:16 reserved 15:3 base address ? r/w. base address of the i/o space (8 consecutive i/o locations). 2:1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 indicating a request for i/o space. bit description 31:16 reserved 15:2 base address ? r/w. base address of the i/o space (4 consecutive i/o locations). 1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 indicating a request for i/o space. bit description 31:16 reserved 15:3 base address ? r/w. base address of the i/o space (8 consecutive i/o locations). 2:1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 indicating a request for i/o space. bit description 31:16 reserved
740 intel ? 631xesb/632xesb i/o controller hub datasheet ide controller registers (d31:f1) note: this 4-byte i/o space is used in native mode for the secondary controller?s command block. 22.1.15 bm_base ? bus master base address register (ide ? d31:f1) address offset: 20h?23h attribute: r/w, ro default value: 00000001h size: 32 bits the bus master ide interface function uses base address register 5 to request a 16- byte i/o space to provide a software interface to the bus master functions. only 12 bytes are actually used (6 bytes for primary, 6 bytes for secondary). only bits [15:4] are used to decode the address. 22.1.16 ide_svid ? subsystem vendor identification (ide ? d31:f1) address offset: 2ch?2dh attribute: r/wo default value: 00h size: 16 bits lockable: no power well: core 22.1.17 ide_sid ? subsystem identification register (ide ? d31:f1) address offset: 2eh?2fh attribute: r/wo default value: 00h size: 16 bits lockable: no power well: core 15:2 base address ? r/w. base address of the i/o space (4 consecutive i/o locations). 1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 indicating a request for i/o space. bit description 31:16 reserved 15:4 base address ? r/w. this field provides the base address of the i/o space (16 consecutive i/o locations). 3:1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 indicating a request for i/o space. bit description 15:0 subsystem vendor id (svid) ? r/wo. the svid register, in combination with the subsystem id (sid) register, enables the operating system (os) to distinguish subsystems from each other. software (bios) sets the value in this register. after that, the value can be read, but subsequent writes to this register have no effect. the value written to this register will also be readable via the corresponding svid registers for the usb#1, usb#2, and smbus functions. bit description 15:0 subsystem id (sid) ? r/wo. the sid register, in combination with the svid register, enables the operating system (os) to distinguish subsystems from each other. software (bios) sets the value in this register. after that, the value can be read, but subsequent writes to this register have no effect. the value written to this register will also be re adable via the corresponding sid registers for the usb#1, usb#2, and smbus functions.
intel ? 631xesb/632xesb i/o controller hub datasheet 741 ide controller registers (d31:f1) 22.1.18 intr_ln ? interrupt line register (ide ? d31:f1) address offset: 3ch attribute: r/w default value: 00h size: 8 bits 22.1.19 intr_pn ? interrupt pin register (ide ? d31:f1) address offset: 3dh attribute: ro default value: see register description size: 8 bits 22.1.20 ide_timp ? ide primary timing register (ide ? d31:f1) address offset: 40?41h attribute: r/w default value: 0000h size: 16 bits this register controls the timings driven on the ide cable for pio and 8237 style dma transfers. it also controls operation of the buffer for pio transfers. bit description 7:0 interrupt line (int_ln) ? r/w. this field is used to communicate to software the interrupt line that the interrupt pin is connected to. bit description 7:0 interrupt pin ? ro. this reflects the value of d31ip.pip (chipset config registers:offset 3100h:bits 7:4). bit description 15 ide decode enable (ide) ? r/w. the ide i/o space enable bit (d31:f1:04h, bit 0) in the command register must be set in order for this bit to have any effect. 0 = disable. 1 = enables the intel ? 631xesb/632xesb i/o controller hub to decode the command (1f0?1f7h) and control (3f6h) blocks. this bit also effects the memory decode range for ide expansion. 14 drive 1 timing register enable (sitre) ? r/w. 0 = use bits 13:12, 9:8 for both drive 0 and drive 1. 1 = use bits 13:12, 9:8 for drive 0, and use the slave ide timing register for drive 1 13:12 iordy sample point (isp) ? r/w. the setting of these bits determine the number of pci clocks between ide ior#/iow# assertion and the first iordy sample point. 00 = 5 clocks 01 = 4 clocks 10 = 3 clocks 11 = reserved 11:10 reserved 9:8 recovery time (rct) ? r/w. the setting of these bits determines the minimum number of pci clocks between the last iordy sample point and the ior#/iow# strobe of the next cycle. 00 = 4 clocks 01 = 3 clocks 10 = 2 clocks 11 = 1 clock 7 drive 1 dma timing enable (dte1) ? r/w. 0 = disable. 1 = enable the fast timing mode for dma transfers only for this drive. pio transfers to the ide data port will run in compatible timing. 6 drive 1 prefetch/posting enable (ppe1) ? r/w. 0 = disable. 1 = enable prefetch and posting to the ide data port for this drive.
742 intel ? 631xesb/632xesb i/o controller hub datasheet ide controller registers (d31:f1) 22.1.21 ide_tims ? ide secondary timing register (ide ? d31:f1) address offset: 42?43h attribute: r/w default value: 0000h size: 16 bits 5 drive 1 iordy sample point enable (ie1) ? r/w. 0 = disable iordy sampling for this drive. 1 = enable iordy sampling for this drive. 4 drive 1 fast timing bank (time1) ? r/w. 0 = accesses to the data port will use compatible timings for this drive. 1 = when this bit = 1 and bit 14 = 0, accesses to the data port will use bits 13:12 for the iordy sample point, and bits 9:8 for the recovery time. when this bit = 1 and bit 14 = 1, accesses to the data port will use the iordy sample point and recover time specified in the slave ide timing register. 3 drive 0 dma timing enable (dte0) ? r/w. 0 = disable 1 = enable fast timing mode for dma transfers only for this drive. pio transfers to the ide data port will run in compatible timing. 2 drive 0 prefetch/posting enable (ppe0) ? r/w. 0 = disable prefetch and posting to the ide data port for this drive. 1 = enable prefetch and posting to the ide data port for this drive. 1 drive 0 iordy sample point enable (ie0) ? r/w. 0 = disable iordy sampling is disabled for this drive. 1 = enable iordy sampling for this drive. 0 drive 0 fast timing bank (time0) ? r/w. 0 = accesses to the data port will use compatible timings for this drive. 1 = accesses to the data port will use bits 13:12 for the iordy sample point, and bits 9:8 for the recovery time bit description bit description 15 ide decode enable (ide) ? r/w. this bit enables/disables the secondary decode. the ide i/o space enable bit (d31:f1:04h, bit 0) in the command register must be set in order for this bit to have any effect. additionally, separate configuration bits are provided (in the ide i/o configuration register) to individually disable the secondary ide interface signals, even if the ide decode enable bit is set. 0 = disable. 1 = enables the intel ? 631xesb/632xesb i/o controller hub to decode the associated command blocks (170?177h) and control block (376h). accesses to these ranges return 00h, as the secondary channel is not implemented. 14:12 no operation (nop) ? r/w. these bits are read/write for legacy software compatibility, but have no functionality in the intel ? 631xesb/632xesb i/o controller hub since a secondary channel does not exist. 11 reserved 10:0 no operation (nop) ? r/w. these bits are read/write for legacy software compatibility, but have no functionality in the intel ? 631xesb/632xesb i/o controller hub since a secondary channel does not exist.
intel ? 631xesb/632xesb i/o controller hub datasheet 743 ide controller registers (d31:f1) 22.1.22 slv_idetim ? slave (drive 1) ide timing register (ide ? d31:f1) address offset: 44h attribute: r/w default value: 00h size: 8 bits 22.1.23 sdma_cnt ? synchronous dma control register (ide ? d31:f1) address offset: 48h attribute: r/w default value: 00h size: 8 bits 22.1.24 sdma_tim ? synchronous dma timing register (ide ? d31:f1) address offset: 4a?4bh attribute: r/w default value: 0000h size: 16 bits note: for fast_pcb1 = 1 (133 mhz clk) in bits [13:12, 9:8, 5:4, 1:0], refer to section 5.20.4 for details. bit description 7:4 no operation (nop) ? r/w. these bits are read/write for legacy software compatibility, but have no functionality in the intel ? 631xesb/632xesb i/o controller hub. 3:2 primary drive 1 iordy sample point (pisp1) ? r/w. this field determines the number of pci clocks between ior#/iow# assertion and the first iordy sample point, if the access is to drive 1 data port and bit 14 of the ide timing register for primary is set. 00 = 5 clocks 01 = 4 clocks 10 = 3 clocks 11 = reserved 1:0 primary drive 1 recovery time (prct1) ? r/w. this field determines the minimum number of pci clocks between the last iordy sample point and the ior#/iow# strobe of the next cycle, if the access is to drive 1 data port and bit 14 of the ide timing register for primary is set. 00 = 4 clocks 01 = 3 clocks 10 = 2 clocks 11 = 1 clocks bit description 7:4 reserved 3:2 no operation (nop) ? r/w. these bits are read/wri te for legacy software compatibility, but have no functionality in the intel ? 631xesb/632xesb i/o controller hub. 1 primary drive 1 synchronous dma mode enable (psde1) ? r/w. 0 = disable (default) 1 = enable synchronous dma mode for primary channel drive 1. 0 primary drive 0 synchronous dma mode enable (psde0) ? r/w. 0 = disable (default) 1 = enable synchronous dma mode for primary channel drive 0. bit description 15:14 reserved 13:12 no operation (nop) ? r/w. these bits are read/write for legacy software compatibility, but have no functionality in the intel ? 631xesb/632xesb i/o controller hub. 11:10 reserved 9:8 no operation (nop) ? r/w. these bits are read/write for legacy software compatibility, but have no functionality in the intel ? 631xesb/632xesb i/o controller hub.
744 intel ? 631xesb/632xesb i/o controller hub datasheet ide controller registers (d31:f1) 22.1.25 ide_config ? ide i/o configuration register (ide ? d31:f1) address offset: 54h attribute: r/w default value: 00h size: 32 bits 7:6 reserved 5:4 primary drive 1 cycle time (pct1) ? r/w. for ultra ata mode, the setting of these bits determines the minimum write strobe cycle time (ct). the dmardy#-to-stop (rp) time is also determined by the setting of these bits. 3:2 reserved 1:0 primary drive 0 cycle time (pct0) ? r/w. for ultra ata mode, the setting of these bits determines the minimum write strobe cycle time (ct). the dmardy#-to-stop (rp) time is also determined by the setting of these bits. bit description bit description 31:24 reserved 23:20 miscellaneous scratchpad (ms) ? r/w. previously defined as a scratchpad bit to indicate to a driver that ata-100 is supported. this is not used by software as all they needed to know was located in bits 7:4. see the definition of those bits. 19:18 no operation (nop) ? r/w. these bits are read/write for legacy software compatibility, but have no functionality in the intel ? 631xesb/632xesb i/o controller hub. 17:16 primary signal mode (psm): ? r/w. these bits are used to control mode of the ide signal pins for swap bay support. if the prs bit (chipset config registers:offset 3414h:bit 1) is ?1?, the reset states of bits 17:16 will be ?01?(tri-state) instead of ?00? (normal). 00 = normal (enabled) 01 = tri-state (disabled) 10 = drive low (disabled) 11 = reserved 15:14 no operation (nop) ? r/w. these bits are read/write for legacy software compatibility, but have no functionality in the intel ? 631xesb/632xesb i/o controller hub. 13:12 fast synchronous base clock enable (fsbce): ? r/w 0 = disables fast ata modes. 1 = enables fast ata modes. this overrides the state of the scb[1:0]bits in this register.
intel ? 631xesb/632xesb i/o controller hub datasheet 745 ide controller registers (d31:f1) 22.1.26 atc ? apm trapping control register (ide ? d31:f1) address offset: c0h attribute: r/w default value: 00h size: 8 bits 22.1.27 ats ? apm trapping register (ide ? d31:f1) address offset: c4h attribute: r/wc default value: 00h size: 8 bits 22.2 bus master ide i/o registers (ide ? d31:f1) the bus master ide function uses 16 bytes of i/o space, allocated via the bmiba register, located in device 31:function 1 configuration space, offset 20h. all bus master ide i/o space registers can be accessed as byte, word, or dword quantities. reading reserved bits returns an indetermin ate, inconsistent value, and writes to reserved bits have no affect (but should not be attempted). the description of the i/o registers is shown in ta b l e 2 2 - 2 . 11:8 reserved 7:4 ultra-dma cable connected (ucc): ? r/w. these are scratchpad bits to indicate that an 80-pin connector is attached to the ata device, and ata-66, ata-100, or ata-133 timings may be used. the previous definition of these bits were to indica te support for ata-66, but all they really indicate is that a gpio elsewhere in the intel ? 631xesb/632xesb i/o controller hub determined that an 80- pin connector is attached. since driver software cannot read that gpio directly, bios copies it here. bios must set these bits properly or drivers will not allow ata-66, ata-100, or ata-133 timings. bit 7 controls the secondary device, 1, bit 6 secondary device 0, bit 5 primary device 1, and bit 4 primary device 0. 3:2 no operation (nop) ? r/w. these bits are read/write for legacy software compatibility, but have no functionality in the intel ? 631xesb/632xesb i/o controller hub. 1:0 synchronous base clock (sbc) : clock used to determine ct and rp timings for synchronous dma timings. ?0? = 33 mhz clock used, ?1? = 66 mhz clock used. bit 1 controls the primary slave device, and bit 0 controls the primary master device. bit description bit description 7:2 reserved. 1 slave trap (pst) ? r/w. enables trapping and smi# assertion on legacy i/o accesses to 1f0h- 1f7h and 3f6h. the active device must be the slave device for the trap and/or smi# to occur. 0 master trap (pmt) ? r/w. enables trapping and smi# assertion on legacy i/o accesses to 1f0h- 1f7h and 3f6h. the active device must be the ma ster device for the trap and/or smi# to occur. bit description 7:2 reserved. 1 slave trap status (psts) ? r/w. indicates that a trap occured to the slave device. 0 master trap status (pmts) ? r/w. indicates that a trap occured to the master device. table 22-2. bus master ide i/o registers (sheet 1 of 2) bmibase + offset mnemonic register name default type 00 bmicp bus master ide command primary 00h r/w 01 ? reserved 00h ro
746 intel ? 631xesb/632xesb i/o controller hub datasheet ide controller registers (d31:f1) 22.2.1 bmicp ? bus master ide command register (ide ? d31:f1) address offset: bmibase + 00h attribute: r/w default value: 00h size: 8 bits 02 bmisp bus master ide status primary 00h r/wc 03 ? reserved 00h ro 04?07 bmidp bus master ide descriptor table pointer primary xxxxxxxxh r/w table 22-2. bus master ide i/o registers (sheet 2 of 2) bmibase + offset mnemonic register name default type bit description 7:4 reserved. returns 0. 3 read / write control (rwc) ? r/w. this bit sets the direction of the bus master transfer: this bit must not be changed when the bus master function is active. 0 = memory reads 1 = memory writes 2:1 reserved. returns 0. 0 start/stop bus master (start) ? r/w. 0 = all state information is lost when this bit is cleared. master mode operation cannot be stopped and then resumed. if this bit is reset while bus master operation is still active (that is, the bus master ide active bit (bmibase + 02h, bit 0) of the bus master ide status register for that ide channel is set) and the drive has not yet finished its data transfer (the interrupt bit (bmibase + 02h, bit 2) in the bus master ide status register for that ide channel is not set), the bus master command is said to be aborted and data transferred from the drive may be discarded instead of being written to system memory. 1 = enables bus master operation of the controller. bus master operation does not actually start unless the bus master enable bit (d31:f1:04h, bit 2) in pci configuration space is also set. bus master operation begins when this bit is detected changing from 0 to 1. the controller will transfer data between the ide device and memory only when this bit is set. master operation can be halted by writing a 0 to this bit. note: this bit is intended to be cleared by software after the data transfer is completed, as indicated by either the bus master ide active bit being cleared or the interrupt bit of the bus master ide status register for that ide channel being set, or both. hardware does not clear this bit automatically.
intel ? 631xesb/632xesb i/o controller hub datasheet 747 ide controller registers (d31:f1) 22.2.2 bmisp ? bus master ide status register (ide ? d31:f1) address offset: bmibase + 02h attribute: r/wc default value: 00h size: 8 bits 22.2.3 bmidp ? bus master ide descriptor table pointer register (ide ? d31:f1) address offset: bmibase + 04h attribute: r/w default value: all bits undefined size: 32 bits bit description 7 prd interrupt status (prdis) ? r/wc. 0 = when this bit is cleared by software, the interrupt is cleared. 1 = set when the host controller completes execution of a prd that has its interrupt bit (bit 2 of this register) set. 6 drive 1 dma capable ? r/w. 0 = not capable. 1 = capable. set by device dependent code (bios or device driver) to indicate that drive 1 for this channel is capable of dma transfers, and that the controller has been initialized for optimum performance. the intel ? 631xesb/632xesb i/o controller hub does not use this bit. it is intended for systems that do not attach bmide to the pci bus. 5 drive 0 dma capable ? r/w. 0 = not capable 1 = capable. set by device dependent code (bios or device driver) to indicate that drive 0 for this channel is capable of dma transfers, and that the controller has been initialized for optimum performance. the intel ? 631xesb/632xesb i/o controller hub does not use this bit. it is intended for systems that do not attach bmide to the pci bus. 4:3 reserved. returns 0. 2 interrupt ? r/wc. software can use this bit to determine if an ide device has asserted its interrupt line (ideirq). 0 = software clears this bit by writing a 1 to it. if this bit is cleared while the interrupt is still active, this bit will remain clear until another assertion edge is detected on the interrupt line. 1 = set by the rising edge of the ide interrupt line, regardless of whether or not the interrupt is masked in the 8259 or the internal i/o apic. when this bit is read as 1, all data transferred from the drive is visible in system memory. 1 error ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit is set when the controller encounters a target abort or master abort when transferring data on pci. 0 bus master ide active (act) ? ro. 0 = this bit is cleared by the intel ? 631xesb/632xesb i/o controller hub when the last transfer for a region is performed, where eot for that region is set in the region descriptor. it is also cleared by the intel ? 631xesb/632xesb i/o controller hub when the start bit is cleared in the command register. when this bit is read as 0, all data transferred from the drive during the previous bus master command is visible in system memory, unless the bus master command was aborted. 1 = set by the intel ? 631xesb/632xesb i/o controller hub when the start bit is written to the command register. bit description 31:2 address of descriptor table (addr) ? r/w. corresponds to a[31:2]. the descriptor table must be dword-aligned. the descriptor table must not cross a 64-k boundary in memory. 1:0 reserved
748 intel ? 631xesb/632xesb i/o controller hub datasheet ide controller registers (d31:f1)
intel ? 631xesb/632xesb i/o controller hub datasheet 749 sata controller registers (d31:f2) 23 sata controller registers (d31:f2) 23.1 pci configuration registers (sata?d31:f2) note: address locations that are not shown should be treated as reserved. all of the sata registers are in the core well. none of the registers can be locked. table 23-1. sata controller pci register address map (sata?d31:f2) (sheet 1 of 2) offset mnemonic register name default type 00?01h vid vendor identification 8086h ro 02?03h did device identification see register description ro 04?05h pcicmd pci command 0000h r/w, ro 06?07h pcists pci status 02b0h r/wc, ro 08h rid revision identification see register description. ro 09h pi programming interface see register description. see register description 0ah scc sub class code see register description see register description 0bh bcc base class code 01h ro 0dh pmlt primary master latency timer 00h ro 10?13h pcmd_bar primary command block base address 00000001h r/w, ro 14?17h pcnl_bar primary control block base address 00000001h r/w, ro 18?1bh scmd_bar secondary command block base address 00000001h r/w, ro 1c?1fh scnl_bar secondary control block base address 00000001h r/w, ro 20?23h bar legacy bus master base address 00000001h r/w, ro 24?27h abar ahci base address 00000000h see register description 2c?2dh svid subsystem vendor identification 0000h r/wo 2e?2fh sid subsystem identification 0000h r/wo 34h cap capabilities pointer 80h ro 3c int_ln interrupt line 00h r/w 3d int_pn interrupt pin see register description. ro 40?41h ide_timp primary ide timing 0000h r/w 42?43h ide_tims secondary ide timing 0000h r/w 44h sidetim slave ide timing 00h r/w 48h sdma_cnt synchronous dma control 00h r/w 4a?4bh sdma_tim synchronous dma timing 0000h r/w 54?57h ide_config ide i/o configuration 00000000h r/w
750 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) note: the intel ? 631xesb/632xesb i/o controller hub sata controller is not arbitrated as a pci device, therefore it does not need a master latency timer. 23.1.1 vid ? vendor identification register (sata ? d31:f2) offset address: 00?01h attribute: ro default value: 8086h size: 16 bit lockable: no power well: core 23.1.2 did ? device identification register (sata ? d31:f2) offset address: 02?03h attribute: ro default value: see bits description size: 16 bit lockable: no power well: core 70?71h pid pci power management capability id 0001h ro 72?73h pc pci power management capabilities 4002h ro 74?75h pmcs pci power management control and status 0000h r/w, ro, r/wc 80?81h mid message signaled interrupt id 7005h ro 82?83h mc message signaled interrupt message control 0000h r/w, ro 84?87h ma message signaled interrupt message address 00000000h r/w 88?89h md message signaled interrupt message data 0000h r/w 90h map address map 00h r/w 91h?93h pcs port control and status 0000h r/w, ro, r/wc a8h-abh satacr0 capability register 0 00100012h ro ach-afh satacr1 capability register 1 00000048h ro c0h atc apm tapping control register 00h r/w c4h ats apm tapping status register 00h r/wc d0?d3h sp scratch pad 00000000h r/w e0h?e3h bfcs bist fis control/status 00000000h r/w, r/wc e4h?e7h bftd1 bist fis transmit data, dw1 00000000h r/w e8h?ebh bftd2 bist fis transmit data, dw2 00000000h r/w table 23-1. sata controller pci register address map (sata?d31:f2) (sheet 2 of 2) offset mnemonic register name default type bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel. intel vid = 8086h bit description 15:0 device id ? ro. this is a 16-bit value assigned to the intel ? 631xesb/632xesb i/o controller hub sata controller, and this field is defined by the following: bits value: bit[15:4] = 268h; bit[3] = '0' ; bit[2:0] = fdsata fuse refer to ta b l e 2 - 3 3
intel ? 631xesb/632xesb i/o controller hub datasheet 751 sata controller registers (d31:f2) 23.1.3 pcicmd ? pci command register (sata?d31:f2) address offset: 04h?05h attribute: ro, r/w default value: 0000h size: 16 bits 23.1.4 pcists ? pci status register (sata?d31:f2) address offset: 06?07h attribute: r/wc, ro default value: 02b0h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. bit description 15:11 reserved 10 interrupt disable ? r/w. this disables pin-based intx# interrupts. this bit has no effect on msi operation. 0 = internal intx# messages are generated if there is an interrupt and msi is not enabled. 1 = internal intx# messages will not be generated. 9 fast back to back enable (fbe) ? ro. reserved as 0. 8 serr# enable (serr_en) ? ro. reserved as 0. 7 wait cycle control (wcc) ? ro. reserved as 0. 6 parity error response (per) ? r/w. 0 = disabled. sata controller will not generate perr# when a data parity error is detected. 1 = enabled. sata controller will generate perr# when a data parity error is detected. 5 vga palette snoop (vps) ? ro. reserved as 0. 4 postable memory write enable (pmwe) ? ro. reserved as 0. 3 special cycle enable (sce) ? ro. reserved as 0. 2 bus master enable (bme) ? r/w. this bit controls the ability to act as a pci master for ide bus master transfers. this bit does not impact the generation of completions for split transaction commands. 1 memory space enable (mse) ? r/w / ro. controls access to the sata controller?s target memory space (for ahci). note: when map.mv (offset 90:bits 1:0) is not 00h, this register is read only (ro). for intel ? 631xesb/632xesb i/o controller hub, this bit is ro ?0?. 0 i/o space enable (iose) ? r/w. this bit controls access to the i/o space registers. 0 = disables access to the legacy or native ide ports (both primary and secondary) as well as the bus master i/o registers. 1 = enable. note that the base address register for the bus master registers should be programmed before this bit is set. bit description 15 detected parity error (dpe) ? r/wc. 0 = no parity error detected by sata controller. 1 = sata controller detects a parity error on its interface. 14 signaled system error (sse) ? ro. reserved as 0. 13 received master abort (rma) ? r/wc. 0 = master abort not generated. 1 = sata controller, as a master, generated a master abort. 12 reserved as 0 ? ro. 11 signaled target abort (sta) ? ro. reserved as 0. 10:9 devsel# timing status (dev_sts) ? ro. 01 = hardwired; controls the device select time for the sata controller?s pci interface.
752 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.1.5 rid ? revision identification register (sata ? d31:f2) offset address: 08h attribute: ro default value: 00h size: 8 bits 23.1.6 pi ? programming interface register (sata?d31:f2) 23.1.6.1 when sub class code register (d31:f2:offset 0ah) = 01h address offset: 09h attribute: r/w, ro default value: see bit description size: 8 bits 8 data parity error detected (dped) ? ro. this bit can only be set on read completions received from sibus where there is a parity error. 1 = sata controller, as a master, either detects a parity error or sees the parity error line asserted, and the parity error response bit (bit 6 of the command register) is set. 7 fast back to back capable (fb2bc) ? ro. reserved as 1. 6 user definable features (udf) ? ro. reserved as 0. 5 66mhz capable (66mhz_cap) ? ro. reserved as 1. 4 capabilities list (cap_list) ? ro. this bit indicates the presence of a capabilities list. the minimum requirement for the capabilities list must be pci power management for the sata controller. 3 interrupt status (ints) ? ro. reflects the state of intx# messages. 0 = interrupt is cleared (independent of the state of interrupt disable bit in the command register [offset 04h]). 1 = interrupt is to be asserted 2:0 reserved bit description bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update - nda for the value of the revision id register bit description 7 this read-only bit is a 1 to indicate that bus master operation is supported 6:4 reserved. will always return 0. 3 secondary mode native capable (snc) ? ro. 0 = secondary controller only supports legacy mode. 1 = secondary controller supports both legacy and native modes. when map.mv (d31:f2:offset 90:bits 1:0) is any value other than 00b, this bit reports as a 0. when map.mv is 00b, this bit reports as a 1.
intel ? 631xesb/632xesb i/o controller hub datasheet 753 sata controller registers (d31:f2) 23.1.6.2 when sub class code register (d31:f2:offset 0ah) = 04h address offset: 09h attribute: ro default value: 00h size: 8 bits 23.1.6.3 when sub class code register (d31:f2:offset 0ah) = 06h address offset: 09h attribute: ro default value: 01h size: 8 bits 23.1.7 scc ? sub class code register (sata?d31:f2) address offset: 0ah attribute: see bit description default value: see bit description size: 8 bits 2 secondary mode native enable (sne) ? r/w / ro. determines the mode that the secondary channel is operating in. 0 = secondary controller operating in legacy (compatibility) mode 1 = secondary controller operating in native pci mode. when map.mv (d31:f2:offset 90:bits 1:0) is any value other than 00b, this bit is read-only (ro). when map.mv is 00b, this bit is read/write (r/w). if this bit is set by software, then the pne bit (bit 0 of this register) must also be set by software. while in theory these bits can be programmed separately, such a configuration is not supported by hardware. 1 primary mode native capable (pnc) ? ro. 0 = primary controller only supports legacy mode. 1 = primary controller supports both legacy and native modes. when map.mv (d31:f2:offset 90:bits 1:0) is any value other than 00b, this bit reports as a 0. when map.mv is 00b, this bit reports as a 1 0 primary mode native enable (pne) ? r/w / ro. determines the mode that the primary channel is operating in. 0 = primary controller operating in legacy (compatibility) mode. 1 = primary controller operating in native pci mode. when map.mv (d31:f2:offset 90:bits 1:0) is any value other than 00b, this bit is read-only (ro). when map.mv is 00b, this bit is read/write (r/w). if this bit is set by software, then the sne bit (bit 2 of this register) must also be set by software. while in theory these bits can be programmed separately, such a configuration is not supported by hardware. bit description bit description 7:0 interface (if) ? ro. when configured as raid, this register becomes read only ?0?. bit description 7:0 interface (if) ? ro. indicates the sata controller supports ahci, rev 1.0. bit description 7:0 sub class code (scc) this field takes on one of several values, per the table below: scc register attributescc register value ro 01h (ide controller)
754 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.1.8 bcc ? base class code register (sata?d31:f2) address offset: 0bh attribute: ro default value: 01h size: 8 bits 23.1.9 pmlt ? primary master latency timer register (sata?d31:f2) address offset: 0dh attribute: ro default value: 00h size: 8 bits 23.1.10 pcmd_bar ? primary command block base address register (sata?d31:f2) address offset: 10h?13h attribute: r/w, ro default value: 00000001h size: 32 bits . note: this 8-byte i/o space is used in native mode for the primary controller?s command block. 23.1.11 pcnl_bar ? primary control block base address register (sata?d31:f2) address offset: 14h?17h attribute: r/w, ro default value: 00000001h size: 32 bits . note: this 4-byte i/o space is used in native mode for the primary controller?s command block. bit description 7:0 base class code (bcc) ? ro. 01h = mass storage device bit description 7:0 master latency timer count (mltc) ? ro. 00h = hardwired. the sata controller is implemented internally, and is not arbitrated as a pci device, so it does not need a master latency timer. bit description 31:16 reserved 15:3 base address ? r/w. this field provides the base address of the i/o space (8 consecutive i/o locations). 2:1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 to indicate a request for i/o space. bit description 31:16 reserved 15:2 base address ? r/w. this field provides the base address of the i/o space (4 consecutive i/o locations). 1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 to indicate a request for i/o space.
intel ? 631xesb/632xesb i/o controller hub datasheet 755 sata controller registers (d31:f2) 23.1.12 scmd_bar ? secondary command block base address register (ide d31:f1) address offset: 18h?1bh attribute: r/w, ro default value: 00000001h size: 32 bits note: this 4-byte i/o space is used in native mode for the secondary controller?s command block. 23.1.13 scnl_bar ? secondary control block base address register (ide d31:f1) address offset: 1ch?1fh attribute: r/w, ro default value: 00000001h size: 32 bits note: this 4-byte i/o space is used in native mode for the secondary controller?s command block. 23.1.14 bar ? legacy bus master base address register (sata?d31:f2) address offset: 20h?23h attribute: r/w, ro default value: 00000001h size: 32 bits the bus master ide interface function uses base address register 5 to request a 16- byte i/o space to provide a software interface to the bus master functions. only 12 bytes are actually used (6 bytes for primary, 6 bytes for secondary). only bits [15:4] are used to decode the address. bit description 31:16 reserved 15:3 base address ? r/w. this field provides the base address of the i/o space (8 consecutive i/o locations). 2:1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 to indicate a request for i/o space. bit description 31:16 reserved 15:2 base address ? r/w. this field provides the base address of the i/o space (4 consecutive i/o locations). 1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 to indicate a request for i/o space. bit description 31:16 reserved 15:4 base address ? r/w. this field provides the base address of the i/o space (16 consecutive i/o locations). 3:1 reserved 0 resource type indicator (rte) ? ro. hardwired to 1 to indicate a request for i/o space.
756 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.1.15 abar ? ahci base address register (sata?d31:f2) address offset: 24h?27h attribute: ro default value: 00000000h size: 32 bits 23.1.16 svid ? subsystem vendor identification register (sata?d31:f2) address offset: 2ch?2dh attribute: r/wo default value: 0000h size: 16 bits lockable: no power well: core 23.1.17 sid ? subsystem identification register (sata?d31:f2) address offset: 2eh?2fh attribute: r/wo default value: 0000h size: 16 bits lockable: no power well: core 23.1.18 cap ? capabilities pointer register (sata?d31:f2) address offset: 34h attribute: ro default value: 80h size: 8 bits 23.1.19 int_ln ? interrupt line register (sata?d31:f2) address offset: 3ch attribute: r/w default value: 00h size: 8 bits bit description 31:0 reserved bit description 15:0 subsystem vendor id (svid) ? r/wo. value is written by bios. no hardware action taken on this value. bit description 15:0 subsystem id (sid) ? r/wo. value is written by bios. no hardware action taken on this value. bit description 7:0 capabilities pointer (cap_ptr) ? ro. this bit indicate s that the first capability pointer offset is 80h, the msi capability. bit description 7:0 interrupt line ? r/w. this field is used to communicate to software the interrupt line that the interrupt pin is connected to.
intel ? 631xesb/632xesb i/o controller hub datasheet 757 sata controller registers (d31:f2) 23.1.20 int_pn ? interrupt pin register (sata?d31:f2) address offset: 3dh attribute: ro default value: see register description size: 8 bits 23.1.21 ide_tim ? ide timing register (sata?d31:f2) address offset: primary: 40?41h attribute: r/w secondary: 42?43h default value: 0000h size: 16 bits this register controls the timings driven on the ide cable for pio and 8237 style dma transfers. it also controls operation of the buffer for pio transfers. note: this register is r/w to maintain software compatibility and enable parallel ata functionality when the pci functions are combined. these bits have no effect on sata operation unless otherwise noted. bit description 7:0 interrupt pin ? ro. this reflects the value of d31ip.sip (chipset config registers:offset 3100h:bits 11:8). bit description 15 ide decode enable (ide) ? r/w. individually enable/disable the primary or secondary decode. 0 = disable. 1 = enables the intel ? 631xesb/632xesb i/o controller hub to decode the associated command blocks (1f0?1f7h for primary, 170?177h for secondary) and control block (3f6h for primary and 376h for secondary). this bit effects the ide decode ranges for both legacy and native-mode decoding. note: this bit affects sata operation in both combined and non-combined ata modes. see section 5.22.1 for more on ata modes of operation. 14 drive 1 timing register enable (sitre) ? r/w. 0 = use bits 13:12, 9:8 for both drive 0 and drive 1. 1 = use bits 13:12, 9:8 for drive 0, and use the slave ide timing register for drive 1 13:12 iordy sample point (isp) ? r/w. the setting of these bits determines the number of pci clocks between ide ior#/iow# assertion and the first iordy sample point. 00 = 5 clocks 01 = 4 clocks 10 = 3 clocks 11 = reserved 11:10 reserved 9:8 recovery time (rct) ? r/w. the setting of these bits determines the minimum number of pci clocks between the last iordy sample point and the ior#/iow# strobe of the next cycle. 00 = 4 clocks 01 = 3 clocks 10 = 2 clocks 11 = 1 clock 7 drive 1 dma timing enable (dte1) ? r/w. 0 = disable. 1 = enable the fast timing mode for dma transfers only for this drive. pio transfers to the ide data port will run in compatible timing. 6 drive 1 prefetch/posting enable (ppe1) ? r/w. 0 = disable. 1 = enable prefetch and posting to the ide data port for this drive. 5 drive 1 iordy sample point enable (ie1) ? r/w. 0 = disable iordy sampling for this drive. 1 = enable iordy sampling for this drive.
758 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.1.22 sidetim ? slave ide timing register (sata?d31:f2) address offset: 44h attribute: r/w default value: 00h size: 8 bits note: this register is r/w to maintain software compatibility and enable parallel ata functionality when the pci functions are combined. these bits have no effect on sata operation unless otherwise noted. 4 drive 1 fast timing bank (time1) ? r/w. 0 = accesses to the data port will use compatible timings for this drive. 1 = when this bit =1 and bit 14 = 0, accesses to the data port will use bits 13:12 for the iordy sample point, and bits 9:8 for the recovery time. when this bit = 1 and bit 14 = 1, accesses to the data port will use the iordy sample point and recover time specified in the slave ide timing register. 3 drive 0 dma timing enable (dte0) ? r/w. 0 = disable 1 = enable fast timing mode for dma transfers only for this drive. pio transfers to the ide data port will run in compatible timing. 2 drive 0 prefetch/posting enable (ppe0) ? r/w. 0 = disable prefetch and posting to the ide data port for this drive. 1 = enable prefetch and posting to the ide data port for this drive. 1 drive 0 iordy sample point enable (ie0) ? r/w. 0 = disable iordy sampling is disabled for this drive. 1 = enable iordy sampling for this drive. 0 drive 0 fast timing bank (time0) ? r/w. 0 = accesses to the data port will use compatible timings for this drive. 1 = accesses to the data port will use bits 13:12 for the iordy sample point, and bits 9:8 for the recovery time bit description bit description 7:6 secondary drive 1 iordy sample point (sisp1) ? r/w. this field determines the number of pci clocks between ide ior#/iow# assertion and the first iordy sample point, if the access is to drive 1 data port and bit 14 of the ide timing register for secondary is set. 00 = 5 clocks 01 = 4 clocks 10 = 3 clocks 11 = reserved 5:4 secondary drive 1 recovery time (srct1) ? r/w. this field determines the minimum number of pci clocks between the last iordy sample point and the ior#/iow# strobe of the next cycle, if the access is to drive 1 data port and bit 14 of the ide timing register for secondary is set. 00 = 4 clocks 01 = 3 clocks 10 = 2 clocks 11 = 1 clocks 3:2 primary drive 1 iordy sample point (pisp1) ? r/w. this field determines the number of pci clocks between ior#/iow# assertion and the first iordy sample point, if the access is to drive 1 data port and bit 14 of the ide timing register for primary is set. 00 = 5 clocks 01 = 4 clocks 10 = 3 clocks 11 = reserved 1:0 primary drive 1 recovery time (prct1) ? r/w. this field determines the minimum number of pci clocks between the last iordy sample point and the ior#/iow# strobe of the next cycle, if the access is to drive 1 data port and bit 14 of the ide timing register for primary is set. 00 = 4 clocks 01 = 3 clocks 10 = 2 clocks 11 = 1 clocks
intel ? 631xesb/632xesb i/o controller hub datasheet 759 sata controller registers (d31:f2) 23.1.23 sdma_cnt ? synchronous dma control register (sata?d31:f2) address offset: 48h attribute: r/w default value: 00h size: 8 bits note: this register is r/w to maintain software compatibility and enable parallel ata functionality when the pci functions are combined. these bits have no effect on sata operation unless otherwise noted. 23.1.24 sdma_tim ? synchronous dma timing register (sata?d31:f2) address offset: 4a?4bh attribute: r/w default value: 0000h size: 16 bits note: this register is r/w to maintain software compatibility and enable parallel ata functionality when the pci functions are combined. these bits have no effect on sata operation, unless otherwise noted. bit description 7:4 reserved 3 secondary device 1 ataxx enable: (sdae1) ? r/w. 0 = disables ata33/66/100/133 timing modes for the secondary slave device. (default) 1 = enables ata33/66/100/133 timing modes for the secondary slave device. 2 secondary device 0 ataxx enable: (sdae0) ? r/w. 0 = disables ata33/66/100/133 timing modes for the secondary master device. (default) 1 = enables ata33/66/100/133 timing modes for the secondary master device. 1 primary device 1 ataxx enable: (pdae1) ? r/w. 0 = disables ata33/66/100/133 timing modes for the primary slave device. (default) 1 = enables ata33/66/100/133 timing modes for the primary slave device. 0 primary device 0 ataxx enable: (pdae0) ? r/w. 0 = disables ata33/66/100/133 timing modes for the primary master device. (default) 1 = enables ata33/66/100/133 timing modes for the primary master device. bit description 15:14 reserved 13:12 secondary drive 1 cycle time (sct1) ? r/w. for ultra ata mode. the setting of these bits determines the minimum write strobe cycle time (ct). the dmardy#-to-stop (rp) time is also determined by the setting of these bits. sbc[3] = 0 (33 mhz clk)scb[3] = 1 (66 mhz clk)fast_scb[3] = 1 (133 mhz clk) 00 = ct 4 clocks, rp 6 clocks00 = reserved00 = reserved 01 = ct 3 clocks, rp 5 clocks01 = ct 3 clocks, rp 8 clocks01 = ct 3 clks, rp 16 clks 10 = ct 2 clocks, rp 4 clocks10 = ct 2 clocks, rp 8 clocks10 = reserved 11 = reserved 11 = reserved11 = reserved 11:10 reserved 9:8 secondary drive 0 cycle time (sct0) ? r/w. same definition as bits 13:12, except for device 0. 7:6 reserved 5:4 primary drive 1 cycle time (pct1) ? r/w. same definition as bits 13:12, except for primary device 1. 3:2 reserved 1:0 primary drive 0 cycle time (pct0) ? r/w. same definition as bits 13:12, except for primary device 0.
760 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.1.25 ide_config ? ide i/o configuration register (sata?d31:f2) address offset: 54h?57h attribute: r/w default value: 00000000h size: 32 bits note: this register is r/w to maintain software compatibility and enable parallel ata functionality when the pci functions are combined. these bits have no effect on sata operation, unless otherwise noted. 23.1.26 pid ? pci power management capability identification register (sata?d31:f2) address offset: 70?71h attribute: ro default value: 0001h size: 16 bits bit description 31:24 reserved 23:20 scratchpad (sp2). intel ? 631xesb/632xesb i/o controller hub does not perform any actions on these bits. 19:18 secondary signals mode (ssm): ? r/w. these bits are used to control mode of the secondary ide signal pins for swap bay support. if the srs bit (chipset config registers:offset 3414h:bit 1) is 1, the reset states of bits 19:18 will be 01 (tri-state) instead of 00 (normal). 00 = normal (enabled) 01 = tri-state (disabled) 10 = drive low (disabled) 11 = reserved 17:16 primary signals mode (psm): ? r/w. these bits are used to control mode of the primary ide signal pins for swap bay support. if the prs bit (chipset config registers:offset 3414h:bit 1) is 1, the reset states of bits 17:16 will be 01 (tri-state) instead of 00 (normal). 00 = normal (enabled) 01 = tri-state (disabled) 10 = drive low (disabled) 11 = reserved 15:12 fast synchronous base clock enable (fsbce): 0 = disables fast ata modes. 1 = enables fast ata modes. this overrides the state of the scb[3:0] bits in this register. 11:8 reserved 7:4 scratchpad (sp1). intel ? 631xesb/632xesb i/o controller hub does not perform any action on these bits. 3:0 synchronous base clock (sbc): clock used to determine ct and rp timings for synchronous dma timings. 0 = 33 mhz clock used, 1 = 66 mhz clock used. bit 3 controls the secondary slave device, bit 2 controls the secondary master device, bit 1 controls the primary slave device, and bit 0 controls the primary master device. bits description 15:8 next capability (next) ? ro. indicates that this is the last item in the list. 7:0 capability id (cid) ? ro. indicates that this pointer is a pci power management.
intel ? 631xesb/632xesb i/o controller hub datasheet 761 sata controller registers (d31:f2) 23.1.27 pc ? pci power management capabilities register (sata?d31:f2) address offset: 72?73h attribute: ro default value: 4002h size: 16 bits f 23.1.28 pmcs ? pci power management control and status register (sata?d31:f2) address offset: 74?75h attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 23.1.29 mid ? message signaled interrupt identifiers register (sata?d31:f2) address offset: 80?81h attribute: ro default value: 7005h size: 16 bits bits description 15:11 pme support (pme_sup) ? ro. indicates pme# can be generated from the d3 hot state in the sata host controller. 10 d2 support (d2_sup) ? ro. hardwired to 0. the d2 state is not supported 9 d1 support (d1_sup) ? ro. hardwired to 0. the d1 state is not supported 8:6 auxiliary current (aux_cur) ? ro. hardwired to 000 to indicate 375 ma maximum suspend well current required when in the d3 cold state. 5 device specific initialization (dsi) ? ro. hardwired to 0 to indicate that no device-specific initialization is required. 4 reserved 3 pme clock (pme_clk) ? ro. hardwired to 0 to indicate that pci clock is not required to generate pme#. 2:0 version (ver) ? ro. hardwired to 010 to indicates support for revision 1.1 of the pci power management specification . bits description 15 pme status (pmes) ? r/wc. bit is set when a pme event is to be requested, and if this bit and pmee is set, a pme# will be generated from the sata controller 14:9 reserved 8 pme enable (pmee) ? r/w. when set, the sata controller generates pme# form d3 hot on a wake event. 7:2 reserved 1:0 power state (ps) ? r/w. these bits are used both to determine the current power state of the sata controller and to set a new power state. 00 = d0 state 11 = d3 hot state when in the d3 hot state, the controller?s configuration space is available, but the i/o and memory spaces are not. additionally, interrupts are blocked. bits description 15:8 next pointer (next) ? ro. this field indicates that the next item in the list the pci power management pointer. 7:0 capability id (cid) ? ro. the capabilities id indicates msi.
762 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.1.30 mc ? message signaled interrupt message control register (sata?d31:f2) address offset: 82?83h attribute: ro, r/w default value: 0000h size: 16 bits 23.1.31 ma ? message signaled interrupt message address register (sata?d31:f2) address offset: 84?87h attribute: r/w default value: 00000000h size: 32 bits 23.1.32 md ? message signaled interrupt message data register (sata?d31:f2) address offset: 88?89h attribute: r/w default value: 0000h size: 16 bits bits description 15:8 reserved 7 64 bit address capable (c64) ? ro. capability of generating 32-bit messages only. 6:4 multiple message enable (mme) ? r/w. these bits are r/w for software compatibility, but only one message is ever sent by intel ? 631xesb/632xesb i/o controller hub. 3:1 multiple message capable (mmc) ? ro. only one message is required. 0 msi enable (msie) ? r/w. 0 = disabled. 1 = msi is enabled and traditional interrupt pins are not used to generate interrupts. bits description 31:2 address (addr) ? r/w. lower 32 bits of the system specified message address, always dword aligned. 1:0 reserved bits description 15:0 data (data) ? r/w. this field is programmed by system software if msi is enabled. its content is driven onto the lower word (pci ad[15:0]) during the data phase of the msi memory write transaction.
intel ? 631xesb/632xesb i/o controller hub datasheet 763 sata controller registers (d31:f2) 23.1.33 map ? port mapping register (sata?d31:f2) address offset: 90h attribute: r/w default value: 00h size: 8 bits 23.1.34 pcs ? port control and status register (sata?d31:f2) address offset: 91h?93h attribute: r/w, r/wc, ro default value: 0000h size: 24 bits bits description 7:6 sata mode select: software programs these bits to control the mode in which the sata hba should operate: 00 ide mode 01 ahci mode 10 raid mode 11 reserved notes: 1. when combined mode is used (non-zero mv), only ide mode is allowed. ide mode can be selected when raid is enabled. 2. ahci mode may only be selected when mv=0. ahci mode may be selected when raid is enabled. 3. raid mode may only be selected when mv=0. note that raid5 mode may not be supported in certain skus of intel ? 631xesb/632xesb i/o controller hub. programming these bits with values that are illegal (for example, selecting raid when in combined mode) will result in-deterministic behavior by the hardware. 5:2 reserved. 1:0 map value ? r/w. map value (mv): the value in the bits below indicate the address range the sata ports responds to, and whether or not the pata and sata functions are combined. when in combined mode, the ahci memory space is not available and ahci may not be used. 00 = non-combined. p0 is primary master, p2 is the primary slave, p1 is secondary master, p3 is the secondary slave. 01 = combined. ide is primary. p1 is secondary master, p3 is the secondary slave. 10 = combined. p0 is primary master. p2 is primary slave. ide is secondary 11 = reserved bits description 23:21 reserved. 20 oob retry mode : 0 = the sata controller will not retry after an oob failure. 1 = the sata controller will continue to retry after an oob failure until successful (infinite retry). 19:16 reserved. 15 port 3 present (p3p) ? ro. same as p0p, except for port 3. 14 port 2 present (p2p) ? ro. same as p0p, except for port 2. 13 port 1 present (p1p) ? ro. same as p0p, except for port 1. 12 port 0 present (p0p) ? ro. when set, the sata controller has detected the presence of a device on port 0. it may change at any time. this bit is cleared when the port is disabled via p0e. this bit is not cleared upon surprise removal of a device. 11 port 3 enabled (p3e) ? r/w. 0 = disabled. the port is in the ?off? state and cannot detect any devices. 1 = enabled. the port can transition between the on, partial, and slumber states and can detect devices. note: this bit takes precedence over p2cmd.sud (offset abar+298h:bit 1)
764 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.1.35 satacr0 ? capability register 0 (sata?d31:f2) address offset: a8h?abh attribute: ro default value: 00100012h size: 32 bits . 10 port 2 enabled (p2e) ? r/w. 0 = disabled. the port is in the ?off? state and cannot detect any devices. 1 = enabled. the port can transition between the on, partial, and slumber states and can detect devices. note: this bit takes precedence over p2cmd.sud (offset abar+218h:bit 1) 9 port 1 enabled (p1e) ? r/w. 0 = disabled. the port is in the ?off? state and cannot detect any devices. 1 = enabled. the port can transition between the on, partial, and slumber states and can detect devices. note: this bit takes precedence over p1cmd.sud (offset abar+198h:bit 1) 8 port 0 enabled (p0e) ? r/w. 0 = disabled. the port is in the ?off? state and cannot detect any devices. 1 = enabled. the port can transition between the on, partial, and slumber states and can detect devices. note: this bit takes precedence over p0cmd.sud (offset abar+118h:bit 1) 7:4 reserved 3 port 5present ( p5p ) ? ro. when set, the sata controller has detected the presence of a device on port 5. it may change at any time. this bit is cleared when the port is disabled via p5e. this bit is not cleared upon surprise removal of a device. 2 port 4present (p4p) ? ro. when set, the sata controller has detected the presence of a device on port 4. it may change at any time. this bit is cleared when the port is disabled via p4e. this bit is not cleared upon surprise removal of a device. 1 port 5enabled (p5e) ? r/w. the definition of this bit is the same as p0e, except for port 5. this bit takes precedence over p5cmd.sud. 0 port 4 enabled (p4e) ? r/w. the definition of this bit is the same as p0e, except for port 4. this bit takes precedence over p4cmd.sud. bits description bit description 31:24 reserved 23:20 major revision (majrev) ? ro: specifies the major revision level to which the sata hba has been built. 19:16 minor revision (minrev) ? ro: specifies the minor revision level to which the sata hba has been built. 15:08 next capability pointer (next) ? ro: pints to the next capability structure. 00h indicates this is the last capability pointer. 7:0 capability id (cap) ? ro: this value of 12h has been assigned by the pci sig to designate the sata capability structure.
intel ? 631xesb/632xesb i/o controller hub datasheet 765 sata controller registers (d31:f2) 23.1.36 satacr1 ? capability register 1 (sata?d31:f2) address offset: ach?afh attribute: ro default value: 00000048h size: 32 bits . 23.1.37 atc ? apm trapping co ntrol register (sata?d31:f2) address offset: c0h attribute: r/w default value: 00h size: 8 bits . 23.1.38 ats ? apm trapping status register (sata?d31:f2) address offset: c4h attribute: r/wc default value: 00h size: 8 bits . bit description 31:16 reserved 15:04 bar offset (barofst) ? ro: indicates the offset into the bar where the index/data pair are located (in dword granularity). the index and data registers are located at offset 10h within the i/o space defined by lbar. a value of 004h indicates offset 10h. 03:00 bar location (barloc) ? ro: indicates the offset of the bar containing the index/data pair (in dword granularity). the index and data i/o registers reside within the space defined by lbar in the sata controller. a value of 8h indicates offset 20h which is lbar. lbar is the bar location for index/data registers. bit description 7:4 reserved 3 secondary slave trap (sst) ? r/w. enables trapping and smi# assertion on legacy i/o accesses to 170h-177h and 376h. the active device on the seco ndary interface must be device 1 for the trap and/or smi# to occur. 2 secondary master trap (spt) ? r/w. enables trapping and smi# assertion on legacy i/o accesses to 170h-177h and 376h. the active device on the secondary interface must be device 0 for the trap and/or smi# to occur. 1 primary slave trap (pst) ? r/w. enables trapping and smi# assertion on legacy i/o accesses to 1f0h-1f7h and 3f6h. the active device on the primary interface must be device 1 for the trap and/ or smi# to occur. 0 primary master trap (pmt) ? r/w. enables trapping and smi# assertion on legacy i/o accesses to 1f0h-1f7h and 3f6h. the active device on the primary interface must be device 0 for the trap and/or smi# to occur. bit description 7:4 reserved 3 secondary slave trap (sst) ? r/wc. indicates that a trap occurred to the secondary slave device. 2 secondary master trap (spt) ? r/wc. indicates that a trap occurred to the secondary master device. 1 primary slave trap (pst) ? r/wc. indicates that a trap occurred to the primary slave device. 0 primary master trap (pmt) ? r/wc. indicates that a trap occurred to the primary master device.
766 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.1.39 sp scratch pad register (sata?d31:f2) address offset: d0h attribute: r/w default value: 00h size: 32 bits . 23.1.40 bfcs ? bist fis control/status register (sata?d31:f2) address offset: e0h?e3h attribute: r/w, r/wc default value: 00000000h size: 32 bits bit description 31:0 data (dt) ? r/w. this is a read/write register that is available for software to use. no hardware action is taken on this register. bits description 31:16 reserved 15 port 5 bist fis initiate (p5bfi) ? r/w. when a rising edge is detected on this bit field, the intel ? 631xesb/632xesb i/o controller hub initiates a bist fis to the device on port 5, using the parameters specified in this register and the data specified in bftd1 and bftd2. the bist fis will only be initiated if a device on port 5 is present and ready (not partial/slumber state). after a bist fis is successfully completed, software must disable and re-enable the port using the pxe bits at offset 92h prior to attempting additional bist fises or to return the intel ? 631xesb/632xesb i/o controller hub to a normal operational mode. if the bist fis fails to complete, as indicated by the bff bit in the register, then software can clear then set the p5bfi bit to initiate another bist fis. this can be retried until the bist fis eventually completes successfully 14 port 4 bist fis initiate (p4bfi) ? r/w. when a rising edge is detected on this bit field, the intel ? 631xesb/632xesb i/o controller hub initiates a bist fis to the device on port 4, using the parameters specified in this register and the data specified in bftd1 and bftd2. the bist fis will only be initiated if a device on port 4 is present and ready (not partial/slumber state). after a bist fis is successfully completed, software must disable and re-enable the port using the pxe bits at offset 92h prior to attempting additional bist fises or to return the intel ? 631xesb/632xesb i/o controller hub to a normal operational mode. if the bist fis fails to complete, as indicated by the bff bit in the register, then software can clear then set the p4bfi bit to initiate another bist fis. this can be retried until the bist fis eventually completes successfully 13 port 3 bist fis initiate (p3bfi) ? r/w. when a rising edge is detected on this bit field, the intel ? 631xesb/632xesb i/o controller hub initiates a bist fis to the device on port 3, using the parameters specified in this register and the data specified in bftd1 and bftd2. the bist fis will only be initiated if a device on port 3 is present and ready (not partial/slumber state). after a bist fis is successfully completed, software must disable and re-enable the port using the pxe bits at offset 92h prior to attempting additional bist fises or to return the intel ? 631xesb/632xesb i/o controller hub to a normal operational mode. if the bist fis fails to complete, as indicated by the bff bit in the register, then software can clear then set the p3bfi bit to initiate another bist fis. this can be retried until the bist fis eventually completes successfully 12 port 2 bist fis initiate (p2bfi) ? r/w. when a rising edge is detected on this bit field, the intel ? 631xesb/632xesb i/o controller hub initiates a bist fis to the device on port 2, using the parameters specified in this register and the data specified in bftd1 and bftd2. the bist fis will only be initiated if a device on port 2 is present and ready (not partial/slumber state). after a bist fis is successfully completed, software must disable and re-enable the port using the pxe bits at offset 92h prior to attempting additional bist fises or to return the intel ? 631xesb/632xesb i/o controller hub to a normal operational mode. if the bist fis fails to complete, as indicated by the bff bit in the register, then software can clear then set the p2bfi bit to initiate another bist fis. this can be retried until the bist fis eventually completes successfully 11 bist fis successful (bfs) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit is set any time a bist fis transmitted by intel ? 631xesb/632xesb i/o controller hub receives an r_ok completion status from the device. note: this bit must be cleared by software prior to initiating a bist fis. 10 bist fis failed (bff) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit is set any time a bist fis transmitted by intel ? 631xesb/632xesb i/o controller hub receives an r_err completion status from the device. note: this bit must be cleared by software prior to initiating a bist fis.
intel ? 631xesb/632xesb i/o controller hub datasheet 767 sata controller registers (d31:f2) 23.1.41 bftd1 ? bist fis transmit data1 register (sata?d31:f2) address offset: e4h?e7h attribute: r/w default value: 00000000h size: 32 bits 23.1.42 bftd2 ? bist fis transmit data2 register (sata?d31:f2) address offset: e8h?ebh attribute: r/w default value: 00000000h size: 32 bits 9 port 1 bist fis initiate (p1bfi) ? r/w. when a rising edge is detected on this bit field, the intel ? 631xesb/632xesb i/o controller hub initiates a bist fis to the device on port 1, using the parameters specified in this register and the data specified in bftd1 and bftd2. the bist fis will only be initiated if a device on port 1 is present and ready (not partial/slumber state). after a bist fis is successfully completed, software must disable and re-enable the port using the pxe bits at offset 92h prior to attempting additional bist fises or to return the intel ? 631xesb/632xesb i/o controller hub to a normal operational mode. if the bist fis fails to complete, as indicated by the bff bit in the register, then software can clear then set the p1bfi bit to initiate another bist fis. this can be retried until the bist fis eventually completes successfully 8 port 0 bist fis initiate (p0bfi) ? r/w. when a rising edge is detected on this bit field, the intel ? 631xesb/632xesb i/o controller hub initiates a bist fis to the device on port 0, using the parameters specified in this register and the data specified in bftd1 and bftd2. the bist fis will only be initiated if a device on port 0 is present and ready (not partial/slumber state). after a bist fis is successfully completed, software must disable and re-enable the port using the pxe bits at offset 92h prior to attempting additional bist fises or to return the intel ? 631xesb/632xesb i/o controller hub to a normal operational mode. if the bist fis fails to complete, as indicated by the bff bit in the register, then software can clear then set the p0bfi bit to initiate another bist fis. this can be retried until the bist fis eventually completes successfully 7:2 bist fis parameters . these 6 bits form the contents of the upper 6 bits of the bist fis pattern definition in any bist fis transmitted by the intel ? 631xesb/632xesb i/o controller hub. this field is not port specific ? its contents will be used for any bist fis initiated on port 0, port 1, port 2 or port 3. the specific bit definitions are: bit 7: t ? far end transmit mode bit 6: a ? align bypass mode bit 5: s ? bypass scrambling bit 4: l ? far end retimed loopback bit 3: f ? far end analog loopback bit 2: p ? primitive bit for use with transmit mode 1:0 reserved bits description bits description 31:0 bist fis transmit data 1 ? r/w. the data programmed into this register will form the contents of the second dword of any bist fis initiated by the intel ? 631xesb/632xesb i/o controller hub. this register is not port specific ? its contents will be used for bist fis initiated on any port. although the 2nd and 3rd dws of the bist fis are only meaningful when the ?t? bit of the bist fis is set to indicate ?far-end transmit mode?, this register?s contents will be transmitted as the bist fis 2nd dw regardless of whether or not the ?t? bit is indicated in the bfcs register (d31:f2:e0h). bits description 31:0 bist fis transmit data 2 ? r/w. the data programmed into this register will form the contents of the third dword of any bi st fis initiated by the intel ? 631xesb/632xesb i/o controller hub. this register is not port specific ? its contents will be used for bist fis initiated on any port. although the 2nd and 3rd dws of the bist fis are only meaningful when the ?t? bit of the bist fis is set to indicate ?far-end transmit mode?, this register?s contents will be transmitted as the bist fis 3rd dw regardless of whether or not the ?t? bit is indicated in the bfcs register (d31:f2:e0h).
768 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.2 bus master ide i/o registers (d31:f2) the bus master ide function uses 16 bytes of i/o space, allocated via the bar register, located in device 31:function 2 configuration space, offset 20h. all bus master ide i/o space registers can be accessed as byte, word, or dword quantities. reading reserved bits returns an indeterminate, inconsistent value, and writes to reserved bits have no affect (but should not be attempted). these registers are only used for legacy operation. software must not use these registers when running ahci. the description of the i/o registers is shown in table 23-2 . 23.2.1 bmic[p,s] ? bus master ide command register (d31:f2) address offset: primary: bar + 00h attribute: r/w secondary: bar + 08h default value: 00h size: 8 bits table 23-2. bus master ide i/o register address map bar+ offset mnemonic register default type 00 bmicp command register primary 00h r/w 01 ? reserved ? ro 02 bmisp bus master ide status register primary 00h r/w, r/wc, ro 03 ? reserved ? ro 04?07 bmidp bus master ide descriptor table pointer primary xxxxxxxx r/w 08 bmics command register secondary 00h r/w 09 ? reserved ? ro 0ah bmiss bus master ide status register secondary 00h r/w, r/wc, ro 0bh ? reserved ? ro 0ch?0fh bmids bus master ide descriptor table pointer secondary xx r/w 10h-13h bmindex bus master ahci index 00000000h ro,rw 14h-17h bmdata bus master ahci data see register description rw bit description 7:4 reserved. returns 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 769 sata controller registers (d31:f2) 23.2.2 bmis[p,s] ? bus master ide status register (d31:f2) address offset: primary: bar + 02h attribute: r/w, r/wc, ro secondary: bar + 0ah default value: 00h size: 8 bits 3 read / write control (rwc) ? r/w. this bit sets the direction of the bus master transfer: this bit must not be changed when the bus master function is active. 0 = memory reads 1 = memory writes 2:1 reserved. returns 0. 0 start/stop bus master (start) ? r/w. 0 = all state information is lost when this bit is cleared. master mode operation cannot be stopped and then resumed. if this bit is reset while bus master operation is still active (that is, the bus master ide active bit (d31:f2:bar + 02h, bit 0) of the bus master ide status register for that ide channel is set) and the drive has not yet finished its data transfer (the interrupt bit in the bus master ide status register for that ide channel is not set), the bus master command is said to be aborted and data transferred from the drive may be discarded instead of being written to system memory. 1 = enables bus master operation of the controller. bus master operation does not actually start unless the bus master enable bit (d31:f1:04h, bit 2) in pci configuration space is also set. bus master operation begins when this bit is dete cted changing from 0 to 1. the controller will transfer data between the ide device and memory only when this bit is set. master operation can be halted by writing a 0 to this bit. note: this bit is intended to be cleared by software after the data transfer is completed, as indicated by either the bus master ide active bit being cleared or the interrupt bit of the bus master ide status register for that ide channel being set, or both. hardware does not clear this bit automatically. if this bit is cleared to ?0? prior to the dma data transfer being initiated by the drive in a device to memory data transfer, then the intel ? 631xesb/ 632xesb i/o controller hub will not send dmat to terminate the data transfer. sw intervention (for example, sending srst) is requ ired to reset the interface in this condition. bit description bit description 7 prd interrupt status (prdis) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit is set when the host controller execution of a prd that has its prd_int bit set. 6 drive 1 dma capable ? r/w. 0 = not capable. 1 = capable. set by device dependent code (bios or device driver) to indicate that drive 1 for this channel is capable of dma transfers, and that the controller has been initialized for optimum performance. this bit is not used. it is intended for systems that do not attach bmide to the pci bus. 5 drive 0 dma capable ? r/w. 0 = not capable 1 = capable. set by device dependent code (bios or device driver) to indicate that drive 0 for this channel is capable of dma transfers, and that the controller has been initialized for optimum performance. this bit is not used. it is intended for systems that do not attach bmide to the pci bus. 4:3 reserved. returns 0.
770 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.2.3 bmid[p,s] ? bus master ide descriptor table pointer register (d31:f2) address offset: primary: bar + 04h?07h attribute: r/w secondary: bar + 0ch?0fh default value: all bits undefined size: 32 bits 23.2.4 bmindex[p,s] ? bus master indirect ahci index register register (d31:f2) address offset: bar + 10h?13h attribute: rw, ro default value: 00000000h size: 32 bits 23.2.5 bmdata[p,s] ? bus master indirect ahci data register register (d31:f2) address offset: bar + 14h?17h attribute: rw default value: see register description size: 32 bits 2 interrupt ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = set when a device fis is received with the ?i? bit set, provided that software has not disabled interrupts via the nien bit of the device control register (see chapter 5 of the serial ata specification , revision 1.0a). 1 error ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit is set when the controller encounters a target abort or master abort when transferring data on pci. 0 bus master ide active (act) ? ro. 0 = this bit is cleared by the intel ? 631xesb/632xesb i/o controller hub when the last transfer for a region is performed, where eot for that region is set in the region descriptor. it is also cleared by the intel ? 631xesb/632xesb i/o controller hub when the start bus master bit (d31:f2:bar+ 00h, bit 0) is cleared in the command register. when this bit is read as a 0, all data transferred from the drive during the previous bus master command is visible in system memory, unless the bus master command was aborted. 1 = set by the intel ? 631xesb/632xesb i/o controller hub when the start bit is written to the command register. bit description bit description 31:2 address of descriptor table (addr) ? r/w. the bits in this field correspond to a[31:2]. the descriptor table must be dword-aligned. the descriptor table must not cross a 64-k boundary in memory. 1:0 reserved bit description 31:10 reserved 09:02 index: this index register is used to select the dword offset of the memory mapped ahci register to be accessed. a dword, word or byte access is specified by the active byte enables of the i/o access to the data register. 1:0 reserved bit description 31:00 data: the data register is a ?window? through which data is read or written to the memory mapped register pointed to by the index register. a physical register is not actually implemented as the data is actually stored in the memory mapped registers. since this is not a physical register, the ?default? value is the same as the default value of the register pointed to by index.
intel ? 631xesb/632xesb i/o controller hub datasheet 771 sata controller registers (d31:f2) 23.3 ahci registers (d31:f2) the memory mapped registers within the sata controller exist in non-cacheable memory space. additionally, locked accesses are not supported. if software attempts to perform locked transactions to the registers, indeterminate results may occur. register accesses shall have a maximum size of 64-bits; 64-bit access must not cross an 8-byte alignment boundary. the registers are broken into two sections ? generic host control and port control. the port control registers are the same for all ports, and there are as many registers banks as there are ports. 23.3.1 ahci generic host control registers (d31:f2) 23.3.1.1 cap ? host capabilities register (d31:f2) address offset: abar + 00h?03h attribute: r/wo, ro default value: c6001f03h size: 32 bits all bits in this register that are r/wo are reset only by pltrst#. table 23-3. ahci register address map abar + offset mnemonic register 00?1f ghc generic host control 20?ff ? reserved 100?17f p0pcr port 0 port control registers 180?1ff p1pcr port 1 port control registers 200?27f p2pcr port 2 port control registers 280?2ff p3pcr port 3 port control registers 300?37f p4pcr port 4 port control registers 380?3ff p5pcr port 5 port control registers table 23-4. generic host controller register address map abar + offset mnemonic register default type 00?03 cap host capabilities c6001f03h r/wo, ro 04?07 ghc global intel ? 631xesb/632xesb i/o controller hub control 00000000h r/w 08?0b is interrupt status 00000000h r/wc 0c?0f pi ports implemented 00000000h r/wo 10-13 vs ahci version 00010000h ro
772 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) bit description 31 supports 64-bit addressing (s64a) ? ro. indicates that the sata controller can access 64-bit data structures. the 32-bit upper bits of the port dma descriptor, the prd base, and each prd entry are read/write. 30 supports command queue acceleration (scqa) ? ro. hardwired to 1 to indicate that the sata controller supports sata command queuing via the dma setup fis. the intel ? 631xesb/632xesb i/o controller hub handles dma setup fises native ly, and can handle auto-activate optimization through that fis. 29 reserved. 28 supports interlock switch (sis) ? r/wo. indicates whether the sata controller supports interlock switches on its ports for use in hot-plug operations. this value is loaded by platform bios prior to os initialization. if this bit is set, bios must also map the satagp pins to the sata controller through gpio space. 27 supports staggered spin-up (sss) ? r/wo. indicates whether the sata controller supports staggered spin-up on its ports, for use in balancin g power spikes. this value is loaded by platform bios prior to os initialization. 0 = staggered spin-up not supported. 1 = staggered spin-up supported. 26 supports aggressive link power management (salp) ? ro. hardwired to 1 to indicate that the sata controller supports auto-generating link re quests to the partial or slumber states when there are no commands to process. 25 supports activity led (sal) ? ro. indicates that the sata controller supports a single output pin (sataled#) which indicates activity. 24 reserved. 23:20 interface speed support (iss) ? ro. indicates the maximum speed the sata controller can support on its ports. 0h =1.5 gb/s. 19 supports non-zero dma offsets (snzo) ? ro. reserved, as per the ahci specification revision 1.0 18 reserved. 17 supports port multiplier (pms) ? r/wo. port multiplier not supported. bios/sw shall write this bit to ?0? during ahci initialization. 16 supports port multiplier fis based switching (pmfs) ? ro. reserved, as per the ahci specification revision 1.0 15 reserved. returns 0. 14 slumber state capable (ssc) ? ro. the sata controller supports the slumber state. 13 partial state capable (psc) ? ro. the sata controller supports the partial state. 12:8 number of command slots (ncs) ? ro. hardwired to 1fh to indicate support for 32 slots. 7:5 reserved. returns 0. 4:0 number of ports (nps) ? ro. hardwired to 5h to indicate support for 6 ports. note that the number of ports indicated in this field may be more than the number of ports indicated in the pi (abar + 0ch) register.
intel ? 631xesb/632xesb i/o controller hub datasheet 773 sata controller registers (d31:f2) 23.3.1.2 ghc ? global intel ? 631xesb/632xesb i/o controller hub control register (d31:f2) address offset: abar + 04h?07h attribute: r/w default value: 00000000h size: 32 bits 23.3.1.3 is ? interrupt status register (d31:f2) address offset: abar + 08h?0bh attribute: r/wc, ro default value: 00000000h size: 32 bits this register indicates which of the ports within the controller have an interrupt pending and require service. bit description 31 ahci enable (ae) ? r/w. when set, indicates that an ahci driver is loaded and the controller will be talked to via ahci mechanisms. this can be used by an intel ? 631xesb/632xesb i/o controller hub that supports both legacy mechanisms (such as sff-8038i) and ahci to know when the controller will not be talked to as legacy. when set, software will only talk to the intel ? 631xesb/632xesb i/o controller hub using ahci. the intel ? 631xesb/632xesb i/o controller hub will not have to allow command processing via both ahci and legacy mechanisms. when cleared, software will only talk to the intel ? 631xesb/ 632xesb i/o controller hub using legacy mechanisms. software shall set this bit to ?1? before accessing other ahci registers. 30:2 reserved. returns 0. 1 interrupt enable (ie) ? r/w. this global bit enables interrupts from the intel ? 631xesb/632xesb i/o controller hub. 0 = all interrupt sources from all ports are disabled. 1 = interrupts are allowed from the ahci controller. 0 hba reset (hr) ? r/w. resets ahci controller. 0 = no effect 1 = when set by sw, this bit causes an internal reset of the ahci controller. all state machines that relate to data transfers and queuing return to an idle condition, and all ports are re-initialized via comreset. note: for further details, consult section 12.3.3 of the serial ata advanced host controller interface specification . bit description 31:6 reserved. returns 0. 5 interrupt pending status port[5] (ips[5]) ? r/wc . 0 = no interrupt pending. 1 = port 5 has an interrupt pending. software ca n use this information to determine which ports require service after an interrupt. 4 interrupt pending status port[4] (ips[4]) ? r/wc . 0 = no interrupt pending. 1 = port 4 has an interrupt pending. software ca n use this information to determine which ports require service after an interrupt. 3 interrupt pending status port[3] (ips[3]) ? r/wc . 0 = no interrupt pending. 1 = port 3 has an interrupt pending. software ca n use this information to determine which ports require service after an interrupt.
774 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.3.1.4 pi ? ports implemented register (d31:f2) address offset: abar + 0ch?0fh attribute: r/wo, ro default value: 00000000h size: 32 bits this register indicates which ports are exposed to the intel ? 631xesb/632xesb i/o controller hub. it is loaded by platform bios. it indicates which ports that the device supports are available for software to use. for ports that are not available, software must not read or write to registers within that port. 23.3.1.5 vs ? ahci version (d31:f2) address offset: abar + 10h?13h attribute: ro default value: 00010000h size: 32 bits this register indicates the major and minor version of the ahci specification. it is bcd encoded. the upper two bytes represent the major version number, and the lower two bytes represent the minor version numb er. example: version 3.12 would be represented as 00030102h. the current version of the specification is 1.0 (00010000h). 2 interrupt pending status port[2] (ips[2]) ? r/wc 0 = no interrupt pending. 1 = port 2 has an interrupt pending. software ca n use this information to determine which ports require service after an interrupt. 1 interrupt pending status port[1] (ips[1]) ? r/wc . 0 = no interrupt pending. 1 = port 1has an interrupt pending. software can use this information to determine which ports require service after an interrupt. 0 interrupt pending status port[0] (ips[0]) ? r/wc . 0 = no interrupt pending. 1 = port 0 has an interrupt pending. software ca n use this information to determine which ports require service after an interrupt. bit description bit description 31:6 reserved. returns 0. 5 ports implemented port 5 (pi5) ? r/wo. 0 = the port is not implemented. 1 = the port is implemented. 4 ports implemented port 4 (pi4) ? r/wo. 0 = the port is not implemented. 1 = the port is implemented. 3 ports implemented port 3 (pi3) ? r/wo. 0 = the port is not implemented. 1 = the port is implemented. 2 ports implemented port 2 (pi2) ? r/wo. 0 = the port is not implemented. 1 = the port is implemented. 1 ports implemented port 1 (pi1) ? r/wo. 0 = the port is not implemented. 1 = the port is implemented. 0 ports implemented port 0 (pi0) ? r/wo . 0 = the port is not implemented. 1 = the port is implemented.
intel ? 631xesb/632xesb i/o controller hub datasheet 775 sata controller registers (d31:f2) 23.3.1.6 sgpiocr ? sgpio control register (sata-d31:f2) address offset: abar + a0h?a3h attribute: ro, rw default value: 00000000h size: 32 bits 23.3.2 port registers (d31:f2) bit description 31:16 major version number (mjr) ? ro. indicates the major version is "1" 15:0 minor version number (mnr) ? ro. indicates the minor version is "0". bit description 31:22 reserved. 21:19 drive 5 data (d5dat) ? rw: indicates the data to be driven out for drive 5 on sdataout1. 18:16 drive 4 data (d4dat) ? rw: indicates the data to be driven out for drive 4 on sdataout1. 15:13 drive 3 data (d3dat) ? rw: indicates the data to be driven out for drive 3 on sdataout0. 12:10 drive 2 data (d2dat) ? rw : indicates the data to be driven out for drive 2 on sdataout0. 09:07 drive 1 data (d1dat) ? rw : indicates the data to be driven out for drive 1 on sdataout0. 06:04 drive 0 data (d0dat) ? rw : indicates the data to be driven out for drive 0 on sdataout0. 03:00 sload vendor specific message (svsm) ? rw: indicates the vendor-specific message to be driven on to sgpio bus on sload pin. table 23-5. port [5:0] dma register address map (sheet 1 of 3) abar + offset mnemonic register 100?103 p0clb port 0 command list base address 104?107 p0clbu port 0 command list base address upper 32-bits 108?10b p0fb port 0 fis base address 10c?10f p0fbu port 0 fis base address upper 32-bits 110?113 p0s port 0 status 114?117 p0ie port 0 interrupt enable 118?11c p0cmd port 0 command 11d?11f ? reserved 120?123 p0tfd port 0 task file data 124?127 p0sig port 0 signature 128?12b p0ssts port 0 serial ata status 12c?12f p0sctl port 0 serial ata control 130?133 p0serr port 0 serial ata error 134?137 p0sact port 0 device status 138?13b p0ci port 0 command issue 13c?17f ? reserved 180?183 p1clb port 1 command list base address 184?187 p1clbu port 1 command list base address upper 32-bits
776 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 188?18b p1fb port 1 fis base address 18c?18f p1fbu port 1 fis base address upper 32-bits 190?193 p1s port 1 status 194?197 p1ie port 1 interrupt enable 198?19c p1cmd port 1 command 19d?19f ? reserved 1a0?1a3 p1tfd port 1 task file data 1a4?1a7 p1sig port 1 signature 1a8?1ab p1ssts port 1 serial ata status 1ac?1af p1sctl port 1 serial ata control 1b0?1b3 p1serr port 1 serial ata error 1b4?1b7 p1sact port 1 device status 1b8?1bb p1ci port 1 command issue 1bc?1ff ? reserved 200?203 p2clb port 2 command list base address 204?207 p2clbu port 2 command list base address upper 32-bits 208?20b p2fb port 2 fis base address 20c?20f p2fbu port 2 fis base address upper 32-bits 210?213 p2s port 2 status 214?217 p2ie port 2 interrupt enable 218?21c p2cmd port 2 command 21d?21f ? reserved 220?223 p2tfd port 2 task file data 224?227 p2sig port 2 signature 228?22b p2ssts port 2 serial ata status 22c?22f p2sctl port 2 serial ata control 230?233 p2serr port 2 serial ata error 234?237 p2sact port 2 device status 238?23b p2ci port 2 command issue 23c?27f ? reserved 280?283 p3clb port 3 command list base address 284?287 p3clbu port 3 command list base address upper 32-bits 288?28b p3fb port 3 fis base address 28c?28f p3fbu port 3 fis base address upper 32-bits 290?293 p3s port 3 status 294?297 p3ie port 3 interrupt enable 298?29c p3cmd port 3 command 19d?19f ? reserved 2a0?2a3 p3tfd port 3 task file data 2a4?2a7 p3sig port 3 signature 2a8?2ab p3ssts port 3 serial ata status table 23-5. port [5:0] dma register address map (sheet 2 of 3) abar + offset mnemonic register
intel ? 631xesb/632xesb i/o controller hub datasheet 777 sata controller registers (d31:f2) 2ac?2af p3sctl port 3 serial ata control 2b0?2b3 p3serr port 3 serial ata error 2b4?2b7 p3sact port 3 device status 2b8?2bb p3ci port 3 command issue 2bc?2ff ? reserved 300?303 p4clb port 4command list base address 304?307 p4clbu port 3 command list base address upper 32-bits 308?30b p4fb port 4 fis base address 30c?30f p4fbu port 4 fis base address upper 32-bits 310?313 p4s port 4 status 314?317 p4ie port 4 interrupt enable 318?31c p4cmd port 4 command 31d?31f ? reserved 320?323 p4tfd port 4 task file data 324?327 p4sig port 4 signature 328?32b p4ssts port 4 serial ata status 32c?32f p4sctl port 4 serial ata control 330?333 p4serr port 4 serial ata error 334?337 p4sact port 4 device status 338?33b p4ci port 4 command issue 33c?37f ? reserved 380?383 p5clb port 5 command list base address 384?387 p5clbu port 5 command list base address upper 32-bits 388?38b p5fb port 5 fis base address 38c?38f p5fbu port 5 fis base address upper 32-bits 390?393 p5s port 5 status 394?397 p5ie port 5 interrupt enable 398?39c p5cmd port 5 command 39d?39f ? reserved 3a0?3a3 p5tfd port5 task file data 3a4?3a7 p5sig port 5 signature 3a8?3ab p5ssts port 5 serial ata status 3ac?3af p5sctl port 5 serial ata control 3b0?3b3 p5serr port 5 serial ata error 3b4?3b7 p5sact port 5 device status 3b8?3bb p5ci port 5 command issue 3bc?3ff ? reserved table 23-5. port [5:0] dma register address map (sheet 3 of 3) abar + offset mnemonic register
778 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.3.2.1 pxclb ? port [5:0] command list base address register (d31:f2) address offset: port 0: abar + 100h attribute: r/w, ro port 1: abar + 180h port 2: abar + 200h port 3: abar + 280h port 4: abar + 300h port 5: abar + 380h default value: undefined size: 32 bits 23.3.2.2 pxclbu ? port [5:0] command list base address upper 32-bits register (d31:f2) address offset: port 0: abar + 104h attribute: r/w port 1: abar + 184h port 2: abar + 204h port 3: abar + 284h port 4: abar + 304h port 5: abar + 384h default value: undefined size: 32 bits 23.3.2.3 pxfb ? port [5:0] fis base address register (d31:f2) address offset: port 0: abar + 108h attribute: r/w, ro port 1: abar + 188h port 2: abar + 208h port 3: abar + 288h port 4: abar + 308h port 5: abar + 388h default value: undefined size: 32 bits bit description 31:10 command list base address (clb) ? r/w . indicates the 32-bit base for the command list for this port. this base is used when fetching comman ds to execute. the structure pointed to by this address range is 1 kbyte in length. this address must be 1 kb aligned as indicated by bits 31:10 being read/write . 9:0 reserved ? ro bit description 31:0 command list base address upper (clbu) ? r/w . indicates the upper 32-bits for the command list base address for this port. this base is used when fetching commands to execute. bit description 31:8 fis base address (fb) ? r/w . indicates the 32-bit base for received fises. the structure pointed to by this address range is 256 bytes in length. th is address must be 256 byte aligned as indicated by bits 31:3 being read/write. 7:0 reserved ? ro
intel ? 631xesb/632xesb i/o controller hub datasheet 779 sata controller registers (d31:f2) 23.3.2.4 pxfbu ? port [5:0] fis base address upper 32-bits register (d31:f2) address offset: port 0: abar + 10ch attribute: r/w port 1: abar + 18ch port 2: abar + 20ch port 2: abar + 20ch port 4: abar + 38ch port 5: abar + 48ch default value: undefined size: 32 bits 23.3.2.5 pxis ? port [5:0] interrupt status register (d31:f2) address offset: port 0: abar + 110h attribute: r/wc, ro port 1: abar + 190h port 2: abar + 210h port 3: abar + 290h port 4: abar + 310h port 5: abar + 390h default value: 00000000h size: 32 bits bit description 31:3 command list base address upper (clbu) ? r/w . indicates the upper 32-bits for the received fis base for this port. 2:0 reserved bit description 31 cold port detect status (cpds) ? ro . cold presence not supported. 30 task file error status (tfes) ? r/wc. this bit is set whenever the status register is updated by the device and the error bit (pxtfd.bit 0) is set. 29 host bus fatal error status (hbfs) ? r/wc . indicates that the intel ? 631xesb/632xesb i/o controller hub encountered an error that it cannot recover from due to a bad software pointer. in pci, such an indication would be a target or master abort. 28 host bus data error status (hbds) ? r/wc . indicates that the intel ? 631xesb/632xesb i/o controller hub encountered a data error (uncorrectable ecc / parity) when reading from or writing to system memory. 27 interface fatal error status (ifs) ? r/wc . indicates that the intel ? 631xesb/632xesb i/o controller hub encountered an error on the sata interface which caused the transfer to stop. 26 interface non-fatal error status (infs) ? r/wc. indicates that the intel ? 631xesb/632xesb i/ o controller hub encountered an error on the sata interface but was able to continue operation. 25 reserved 24 overflow status (ofs) ? r/wc . indicates that the intel ? 631xesb/632xesb i/o controller hub received more bytes from a device than was specified in the prd table for the command. 23 incorrect port multiplier status (ipms) ? r/wc. indicates that the intel ? 631xesb/632xesb i/ o controller hub received a fis from a device whose port multiplier field did not match what was expected. note: port multiplier not supported by intel ? 631xesb/632xesb i/o controller hub. 22 phyrdy change status (prcs): 0 = set to 0. indicates the internal phyrdy signal changed stat e. this bit reflects the state of pxserr.diag.n. unlike most of the other bits in the register, this bit is ro and is only cleared when pxserr.diag.n is cleared. the internal phyrdy signal also transitions when the port interface enters partial or slumber power management states. partial or slumber must be disabled when surprise removal notification is desired; otherwise, the power management state transitions will appear as false insertion and removal events. 21:8 reserved 7 device interlock status (dis) ? r/wc. when set, indicates that a platform interlock switch has been opened or closed, which may lead to a change in the connection state of the device.this bit is only valid in systems that support an interlock switch (cap.sis [abar+00:bit 28] set). for systems that do not support an interlock switch, this bit will always be ?0?.
780 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.3.2.6 pxie ? port [5:0] interrupt enable register (d31:f2) address offset: port 0: abar + 114h attribute: r/w, ro port 1: abar + 194h port 2: abar + 214h port 3: abar + 294h port 4: abar + 314h port 5: abar + 394h default value: 00000000h size: 32 bits this register enables and disables the reporting of the corresponding interrupt to system software. when a bit is set (?1?) and the corresponding interrupt condition is active, then an interrupt is generated. interrupt sources that are disabled (?0?) are still reflected in the status registers. 6 port connect change status (pcs) ? ro . this bit reflects the state of pxserr.diag.x. (abar+130h/1d0h/230h/2d0h, bit 26) unlike other bits in this register, this bit is only cleared when pxserr.diag.x is cleared. 0 = no change in current connect status. 1 = change in current connect status. 5 descriptor processed (dps) ? r/wc . a prd with the i bit set has transferred all its data. 4 unknown fis interrupt (ufs) ? ro . an unknown fis was received and has been copied into system memory. this bit reflects the state of pxserr.diag[f] (abar+130h/1d0h/230h/2d0h, bit 25). unlike other bits in this register, this bit is only cleared when pxserr.diag[f] is cleared. 3 set device bits interrupt (sdbs) ? r/wc . a set device bits fis has been received with the i bit set and has been copied into system memory. 2 dma setup fis interrupt (dss) ? r/wc . a dma setup fis has been received with the i bit set and has been copied into system memory. 1 pio setup fis interrupt (pss) ? r/wc . a pio setup fis has been received with the i bit set, it has been copied into system memory, and the data related to that fis has been transferred. 0 device to host register fis interrupt (dhrs) ? r/wc . a d2h register fis has been received with the i bit set, and has been copied into system memory. bit description bit description 31 cold presence detect enable (cpde) ? ro. cold presence detect not supported. 30 task file error enable (tfee) ? r/w . when set, and ghc.ie and pxtfd.sts.err (due to a reception of the error register from a received fis) are set, interrupt will be generated. 29 host bus fatal error enable (hbfe) ? r/w . when set, and ghc.ie and pxs.hbfs are set, interrupt will be generated. 28 host bus data error enable (hbde) ? r/w . when set, and ghc.ie and pxs.hbds are set, interrupt will be generated. 27 interface fatal error enable (ife) ? r/w. when set, ghc.ie is set, and pxis.ifs is set, interrupt will be generated. 26 interface non-fatal error enable (infe) ? r/w. when set, ghc.ie is set, and pxis.infs is set, interrupt will be generated. 25 reserved - should be written as ?0? 24 overflow error enable (ofe) ? r/w . when set, and ghc.ie and pxs.ofs are set, interrupt will be generated. 23 incorrect port multiplier enable (ipme) ? r/w. when set, and ghc.ie and pxis.ipms are set, the intel ? 631xesb/632xesb i/o controller hub will generate an interrupt. note: should be written as ?0?. port multiplier not supported. 22 phyrdy change interrupt enable (prcie) : 0 = disable. 1 = when set, and ghc.ie is set, and pxis.prcs is set, interrupt will be generated. 21:8 reserved - should be written as ?0?
intel ? 631xesb/632xesb i/o controller hub datasheet 781 sata controller registers (d31:f2) 7 device interlock enable (die) ? r/w. when set, and pxis.dis is set, interrupt will be generated. for systems that do not support an interlock switch, this bit shall be a read-only ?0?. 6 port change interrupt enable (pce) ? r/w . when set, and ghc.ie and pxs.pcs are set, interrupt will be generated. 5 descriptor processed interrupt enable (dpe) ? r/w . when set, and ghc.ie and pxs.dps are set, interrupt will be generated 4 unknown fis interrupt enable (ufie) ? r/w . when set, and ghc.ie is set and an unknown fis is received, the ich6 will generate this interrupt. 3 set device bits fis interrupt enable (sdbe) ? r/w . when set, and ghc.ie and pxs.sdbs are set, interrupt will be generated. 2 dma setup fis interrupt enable (dse) ? r/w . when set, and ghc.ie and pxs.dss are set, interrupt will be generated. 1 pio setup fis interrupt enable (pse) ? r/w . when set, and ghc.ie and pxs.pss are set, interrupt will be generated. 0 device to host register fis interrupt enable (dhre) ? r/w . when set, and ghc.ie and pxs.dhrs are set, interrupt will be generated. bit description
782 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.3.2.7 pxcmd ? port [5:0] command register (d31:f2) address offset: port 0: abar + 118h attribute: r/w, ro, r/wo port 1: abar + 198h port 2: abar + 218h port 3: abar + 298h port 4: abar + 318h port 5: abar + 398h default value: 0000w00wh size: 32 bits where w = 00?0b (for?, see bit description) bit description 31:28 interface communication control (icc) ? r/w . this is a four bit field which can be used to control reset and power states of the interface. writes to this field will cause actions on the interface, either as primitives or an oob sequence , and the resulting status of the interface will be reported in the pxssts register (address offset port 0:abar+124h, port 1: abar+1a4h, port 2: abar+224h, port 3: abar+2a4h). value definition fh?7h: reserved 6h: slumber: this will cause the intel ? 631xesb/632xesb i/o controller hub to request a transition of the interface to the slumber state. the sata device may reject the request and the interface will remain in its current state 5h?3h: reserved 2h: partial: this will cause the intel ? 631xesb/632xesb i/o controller hub to request a transition of the interface to the partial state. the sata device may reject the request and the interface will remain in its current state. 1h: active: this will cause the intel ? 631xesb/632xesb i/o controller hub to request a transition of the interface into the active state. 0h: no-op / idle: when software reads this value, it indicates the intel ? 631xesb/632xesb i/o controller hub is not in the process of changing the interface state or sending a device reset, and a new link command may be issued. when system software writes a non-reserved value other than no-op (0h), the intel ? 631xesb/ 632xesb i/o controller hub will perform the action and update this field back to idle (0h). if software writes to this field to change the state to a state the link is already in (for example, interface is in the active state and a request is made to go to the active state), the intel ? 631xesb/ 632xesb i/o controller hub will take no action and return this field to idle. 27 aggressive slumber / partial (asp) ? r/w . when set, and the alpe bit (bit 26) is set, the intel ? 631xesb/632xesb i/o controller hub will aggressively enter the slumber state when it clears the pxci register and the pxsact register is cleared. when cleared, and the alpe bit is set, the intel ? 631xesb/632xesb i/o controller hub will aggressively enter the partial state when it clears the pxci register and the pxsact register is cleared. 26 aggressive link power management enable (alpe) ? r/w . when set, the intel ? 631xesb/ 632xesb i/o controller hub will aggressively enter a lower link power state (partial or slumber) based upon the setting of the asp bit (bit 27). 25 drive led on atapi enable (dlae) ? r/w . when set, the intel ? 631xesb/632xesb i/o controller hub will drive the led pin active for atapi commands (pxclb[chz.a] set) in addition to ata commands. when cleared, the intel ? 631xesb/632xesb i/o controller hub will only drive the led pin active for ata commands. see section 5.18.1.8 for details on the activity led. 24 hdevice is atapi (atapi) ? r/w. when set, the connected device is an atapi device. this bit is used by the intel ? 631xesb/632xesb i/o controller hub to control whether or not to generate the desktop led when commands are active. see section 5.18.1.8 for details on the activity led. 23:20 reserved 19 interlock switch attached to port (isp) ? r/wo. when interlock switches are supported in the platform (cap.sis [abar+00h:bit 28] set), this indicates whether this particular port has an interlock switch attached. this bit can be used by system software to enable such features as aggressive power management, as disconnects can always be detected regardless of phy state with an interlock switch. when this bit is set, it is expected that hpcp (bit 18) in this register is also set. no action on the state of this bit ? it is for system software only. for example, if this bit is cleared, and an interlock switch toggles, the intel ? 631xesb/632xesb i/o controller hub still treats it as a proper interlock switch event.
intel ? 631xesb/632xesb i/o controller hub datasheet 783 sata controller registers (d31:f2) 18 hot plug capable port (hpcp) ? r/wo. 0 = port is not capable of hot-plug. 1 = port is hot-plug capable. this indicates whether the platform exposes this port to a device which can be hot-plugged. sata by definition is hot-pluggable, but not all platforms are constructed to allow the device to be removed (it may be screwed into the chassis, for example). this bit can be used by system software to indicate a feature such as "eject device" to the end-user. no action on the state of this bit - it is for system software only. for example, if this bit is cleared, and a hot-plug event occurs, the intel ? 631xesb/632xesb i/o controller hub still treats it as a proper hot-plug event. 17 port multiplier attached (pma) ? ro / r/w. when this bit is set, a port multiplier is attached to the intel ? 631xesb/632xesb i/o controller hub for this port. when cleared, a port multiplier is not attached to this port. this bit is ro ?0? when cap.pms (offset abar+00h:bit 17) = ?0? and r/w when cap.pms = ?1?. note: port multiplier is not supported. 16 port multiplier fis based switching enable (pmf se) ? ro. fis-based switching is not supported. 15 controller running (cr) ? ro. when this bit is set, the dma engines for a port are running. see section 5.2.2 of the serial ata ahci specification for details on when this bit is set and cleared. 14 fis receive running (fr) ? ro. when set, the fis receive dma engine for the port is running. see section 12.2.2 of the serial ata ahci specification for details on when this bit is set and cleared by the intel ? 631xesb/632xesb i/o controller hub. 13 interlock switch state (iss) ? ro. for systems that support interlock switches (via cap.sis [abar+00h:bit 28]), if an interlock switch exists on this port (via isp in this register), this bit indicates the current state of the interlock switch. a ?0? indicates the switch is closed, and a ?1? indicates the switch is opened. for systems that do not support interlock switches, or if an interlock switch is not attached to this port, this bit reports ?0?. 12:8 current command slot (ccs) ? ro . indicates the current command slot the intel ? 631xesb/ 632xesb i/o controller hub is processing. this field is valid when the st bit is set in this register, and is constantly updated by the intel ? 631xesb/632xesb i/o controller hub. this field can be updated as soon as the intel ? 631xesb/632xesb i/o controller hub recognizes an active command slot, or at some point soon after when it begins processing the command. this field is used by software to determine the current command issue location of the intel ? 631xesb/632xesb i/o controller hub. in queued mode, software shall not use this field, as its value does not represent the current command being executed. software shall only use pxci and pxsact when running queued commands. 7:5 reserved 4 fis receive enable (fre) ? r/w. when set, the intel ? 631xesb/632xesb i/o controller hub may post received fises into the fis receive area pointed to by pxfb (abar+108h/188h/208h/ 288h) and pxfbu (abar+10ch/18ch/20ch/28ch). when cleared, received fises are not accepted, except for the first d2h (device-to-host) register fis after the initialization sequence. system software must not set this bit until pxfb (pxfbu) have been programmed with a valid pointer to the fis receive area, and if software wishes to move the base, this bit must first be cleared, and software must wait for the fr bit (bit 14) in this register to be cleared. 3 port selector activate (psa) ? ro. port selector not supported. 2power on device (pod) ? ro . cold presence detect not supported. 1 spin-up device (sud) ? r/w / ro this bit is r/w and defaults to ?0? for systems that support staggered spin-up (r/w when cap.sss (abar+00h:bit 27) is ?1?). bit is ro ?1? for systems that do not support staggered spin-up (when cap.sss is ?0?). 0 = no action. 1 = on an edge detect from '0' to '1', the intel ? 631xesb/632xesb i/o controller hub starts a comreset initialization sequence to the device. 0 start (st) ? r/w . when set, the intel ? 631xesb/632xesb i/o controller hub may process the command list. when cleared, the intel ? 631xesb/632xesb i/o controller hub may not process the command list. whenever this bit is changed from a 0 to a 1, the intel ? 631xesb/632xesb i/o controller hub starts processing the command list at entry 0. whenever this bit is changed from a 1 to a 0, the pxci register is cleared by the intel ? 631xesb/632xesb i/o controller hub upon the intel ? 631xesb/632xesb i/o controller hub putting the controller into an idle state. refer to section 12.2.1 of the serial ata ahci specification for important restrictions on when st can be set to ?1?. bit description
784 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.3.2.8 pxtfd ? port [5:0] task file data register (d31:f2) address offset: port 0: abar + 120h attribute: ro port 1: abar + 1a0h port 2: abar + 220h port 3: abar + 2a0h port 4: abar + 320h port 5: abar + 3a0h default value: 0000007fh size: 32 bits this is a 32-bit register that copies specific fields of the task file when fises are received. the fises that contain this information are: ? d2h register fis ?pio setup fis ? set device bits fis 23.3.2.9 pxsig ? port [5:0] signature register (d31:f2) address offset: port 0: abar + 124h attribute: ro port 1: abar + 1a4h port 2: abar + 224h port 3: abar + 2a4h port 4: abar + 324h port 5: abar + 3a4h default value: ffffffffh size: 32 bits this is a 32-bit register which contains the initial signature of an attached device when the first d2h register fis is received from that device. it is updated once after a reset sequence. bit description 31:16 reserved 15:8 error (err) ? ro . contains the latest copy of the task file error register. 7:0 status (sts) ? ro . contains the latest copy of the task file status register. fields of note in this register that affect ahci. bit fielddefinition 7 bsyindicates the interface is busy 6:4 n/a not applicable 3 drqindicates a data transfer is requested 2:1 n/anot applicable 0 errindicates an error during the transfer. bit description 31:0 signature (sig) ? ro . contains the signature received from a device on the first d2h register fis. the bit order is as follows: bit field 31:24 lba high register 23:16 lba mid register 15:8 lba low register 7:0 sector count register
intel ? 631xesb/632xesb i/o controller hub datasheet 785 sata controller registers (d31:f2) 23.3.2.10 pxssts ? port [5:0] serial ata status register (d31:f2) address offset: port 0: abar + 128h attribute: ro port 1: abar + 1a8h port 2: abar + 228h port 3: abar + 2a8h port 4: abar + 328h port 5: abar + 3a8h default value: 00000000h size: 32 bits this is a 32-bit register that conveys the current state of the interface and host. the intel ? 631xesb/632xesb i/o controller hub updates it continuously and asynchronously. when the intel ? 631xesb/632xesb i/o controller hub transmits a comreset to the device, this register is updated to its reset values. 23.3.2.11 pxssts ? port [5:0] serial ata control register (d31:f2) address offset: port 0: abar + 12ch attribute: r/w, ro port 1: abar + 1ach port 2: abar + 22ch port 3: abar + 2ach port 4: abar + 32ch port 5: abar + 3ach default value: 00000004h size: 32 bits this is a 32-bit read-write register by whic h software controls sata capabilities. writes to the scontrol register result in an action being taken by the intel ? 631xesb/632xesb i/o controller hub or the interface. reads from the register return the last value written to it. bit description 31:12 reserved 11:8 interface power management (ipm) ? ro . indicates the current interface state: value definition 0h device not present or communication not established 1h interface in active state 2h interface in partial power management state 6h interface in slumber power management state all other values reserved. 7:4 current interface speed (spd) ? ro. indicates the negotiated interface communication speed. value definition 0h device not present or communication not established 1h generation 1 communication rate negotiated (1.5gbps) 2h generation 2 communication rate negotiated (3.0gbps) all other values reserved 3:0 device detection (det) ? ro . indicates the interface device detection and phy state: value definition 0h no device detected and phy communication not established 1h device presence detected but phy communication not established 3h device presence detected and phy communication established 4h phy in offline mode as a result of the interface being disabled or running in a bist loopback mode all other values reserved bit description 31:16 reserved 19:16 port multiplier port (pmp) ? ro. this field is not used by ahci 15:12 select power management (spm) ? ro. this field is not used by ahci
786 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 11:8 interface power management transitions allowed (ipm) ? r/w . indicates which power states that is allowed to transition to: value definition 0h no interface restrictions 1h transitions to the partial state disabled 2h transitions to the slumber state disabled 3h transitions to both partial and slumber states disabled all other values reserved 7:4 speed allowed (spd) ? r/w. indicates the highest allowable speed of the interface. value definition 0h no speed negotiation restrictions 1h limit speed negotiation to generation 1 communication rate (1.5gbps) 2h limit speed negotiation to generation 2 communication rate (3.0gbps) all other values reserved. 3:0 device detection initialization (det) ? r/w . controls the intel ? 631xesb/632xesb i/o controller hub?s device detection and interface initialization. value definition 0h no device detection or initialization action requested 1h perform interface communication initialization sequence to establish communication. this is functionally equivalent to a hard reset and results in the interface being reset and communications re-initialized 4h disable the serial ata interface and put phy in offline mode all other values reserved. when this field is written to a 1h, the intel ? 631xesb/632xesb i/o controller hub initiates comreset and starts the initialization process. when the initialization is complete, this field shall remain 1h until set to another value by software. this field may only be changed to 1h or 4h when pxcmd.st is ?0?. changing this field while the intel ? 631xesb/632xesb i/o controller hub is running results in undefined behavior. bit description
intel ? 631xesb/632xesb i/o controller hub datasheet 787 sata controller registers (d31:f2) 23.3.2.12 pxserr ? port [3:0] serial ata error register (d31:f2) address offset: port 0: abar + 130h attribute: r/wc port 1: abar + 1d0h port 2: abar + 230h port 3: abar + 2d0h default value: 00000000h size: 32 bits bit description 31:16 diagnostics (diag) ? r/wc . contains diagnostic error information for use by diagnostic software in validating correct operation or isolating failure modes: bits description 31:27reserved 26 exchanged (x) : when set to one this bit indicates a cominit signal was received. this bit is reflected in the interrupt register pxis.pcs. 25 unrecognized fis type (f) : indicates that one or more fiss were received by the transport layer with good crc, but had a type field that was not recognized. 24 transport state transition error (t) : indicates that an error has occurred in the transition from one state to another within the transport layer since the last time this bit was cleared. 23 link sequence error (s) : indicates that one or more link state machine error conditions was encountered. the link layer state machine defines the conditions under which the link layer detects an erroneous transition. 22 handshake error (h) : indicates that one or more r_err handshake response was received in response to frame transmission. such errors may be the result of a crc error detected by the recipient, a disparity or 8b/10b decoding error, or other error condition leading to a negative handshake on a transmitted frame. 21 crc error (c) : indicates that one or more crc errors occurred with the link layer. 20 disparity error (d) : this field is not used by ahci. 19 10b to 8b decode error (b) : indicates that one or more 10b to 8b decoding errors occurred. 18 comm wake (w) : indicates that a comm wake signal was detected by the phy. 17 phy internal error (i) : indicates that the phy detected some internal error. 16 phyrdy change (n) : indicates that the phyrdy signal changed state. 15:0 error (err) ? r/wc . the err field contains error information for use by host software in determining the appropriate response to the error condition. if one or more of bits 11:8 of this register are set, the controller will stop the current transfer. bits description 15:12reserved 11 internal error (e) : the sata controller failed due to a master or target abort when attempting to access system memory. 10 protocol error (p) : a violation of the serial ata protocol was detected. 9 persistent communication or data integrity error (c) : a communication error that was not recovered occurred that is expected to be persistent. persistent communications errors may arise from faulty interconnect with the device, from a device that has been removed or has failed, or a number of other causes. 8 transient data integrity error (t) : a data integrity error occurred that was not recovered by the interface. 7:2 reserved 1 recovered communications error (m) : communications between the device and host was temporarily lost but was re-established. this can arise from a device temporarily being removed, from a temporary loss of phy synchronization, or from other causes and may be derived from the phynrdy signal between the phy and link layers. 0 recovered data integrity error (i) : a data integrity error occurred that was recovered by the interface through a retry operation or other recovery action.
788 intel ? 631xesb/632xesb i/o controller hub datasheet sata controller registers (d31:f2) 23.3.2.13 pxsact ? port [3:0] serial ata active (d31:f2) address offset: port 0: abar + 134h attribute: r/w port 1: abar + 1d4h port 2: abar + 234h port 3: abar + 2d4h port 4: abar + 334h port 5: abar + 3d4h default value: 00000000h size: 32 bits 23.3.2.14 pxci ? port [3:0] command issue register (d31:f2) address offset: port 0: abar + 138h attribute: r/w port 1: abar + 1d8h port 2: abar + 238h port 3: abar + 2d8h port 4: abar + 338h port 5: abar + 3d8h default value: 00000000h size: 32 bits bit description 31:0 device status (ds) ? r/w . system software sets this bit for sata queuing operations prior to setting the pxci.ci bit in the same command slot entry. this field is cleared via the set device bits fis. this field is also cleared when pxcmd.st (abar+118h/198h/218h/298h:bit 0) is cleared by software, and as a result of a comreset or srst. bit description 31:0 commands issued (ci) ? r/w . this field is set by software to indicate that a command has been built-in system memory for a command slot and may be sent to the device. when the intel ? 631xesb/632xesb i/o controller hub receives a fis which clears the bsy and drq bits for the command, it clears the corresponding bit in this register for that command slot. this field is also cleared when pxcmd.st (abar+118h/198h/218h/298h:bit 0) is cleared by software.
intel ? 631xesb/632xesb i/o controller hub datasheet 789 smbus controller registers (d31:f3) 24 smbus controller registers (d31:f3) 24.1 pci configuration registers (smbus ? d31:f3) note: registers that are not shown should be treated as reserved (see section 2.1 for details). 24.1.1 vid ? vendor identification register (smbus ? d31:f3) address: 00?01h attribute: ro default value: 8086h size: 16 bits 24.1.2 did ? device identification register (smbus ? d31:f3) address: 02?03h attribute: ro default value: 269bh size: 16 bits table 24-1. smbus controller pci register address map (smbus ? d31:f3) offset mnemonic register name default type 00?01h vid vendor identification 8086 ro 02?03h did device identification 269bh ro 04?05h pcicmd pci command 0000h r/w, ro 06?07h pcists pci status 0280h ro, r/wc 08h rid revision identification see register description. ro 09h pi programming interface 00h ro 0ah scc sub class code 05h ro 0bh bcc base class code 0ch ro 20?23h smb_base smbus base address 00000001h r/w, ro 2c?2dh svid subsystem vendor identification 00h ro 2e?2fh sid subsystem identification 00h r/wo 3ch int_ln interrupt line 00h r/w 3dh int_pn interrupt pin see description ro 40h hostc host configuration 00h r/w bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel bit description 15:0 device id ? ro. refer to ta b l e 2 - 3 3
790 intel ? 631xesb/632xesb i/o controller hub datasheet smbus controller registers (d31:f3) 24.1.3 pcicmd ? pci command register (smbus ? d31:f3) address: 04?05h attributes: ro, r/w default value: 0000h size: 16 bits 24.1.4 pcists ? pci status register (smbus ? d31:f3) address: 06?07h attributes: ro, r/wc default value: 0280h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. bit description 15:11 reserved 10 interrupt disable ? r/w. 0 = enable 1 = disables smbus to assert its pirqb# signal. 9 fast back to back enable (fbe) ? ro. hardwired to 0. 8 serr# enable (serr_en) ? r/w. 0 = enables serr# generation. 1 = disables serr# generation. 7 wait cycle control (wcc) ? ro. hardwired to 0. 6 parity error response (per) ? r/w. 0 = disable 1 = sets detected parity error bit (d31:f3:06, bit 15) when a parity error is detected. 5 vga palette snoop (vps) ? ro. hardwired to 0. 4 postable memory write enable (pmwe) ? ro. hardwired to 0. 3 special cycle enable (sce) ? ro. hardwired to 0. 2 bus master enable (bme) ? ro. hardwired to 0. 1 memory space enable (mse) ? ro. hardwired to 0. 0 i/o space enable (iose) ? r/w. 0 = disable 1 = enables access to the sm bus i/o space registers as defined by the base address register. bit description 15 detected parity error (dpe) ? r/wc. 0 = no parity error detected. 1 = parity error detected. 14 signaled system error (sse) ? r/wc. 0 = no system error detected. 1 = system error detected. 13 received master abort (rma) ? ro. hardwired to 0. 12 received target abort (rta) ? ro. hardwired to 0. 11 signaled target abort (sta) ? r/wc. 0 = intel ? 631xesb/632xesb i/o controller hub did not terminate transaction for this function with a target abort. 1 = the function is targeted with a transaction that the intel ? 631xesb/632xesb i/o controller hub terminates with a target abort. 10:9 devsel# timing status (devt) ? ro. this 2-bit field defines the timing for devsel# assertion for positive decode. 01 = medium timing. 8 data parity error detected (dped) ? ro. hardwired to 0. 7 fast back to back capable (fb2bc) ? ro. hardwired to 1.
intel ? 631xesb/632xesb i/o controller hub datasheet 791 smbus controller registers (d31:f3) 24.1.5 rid ? revision identification register (smbus ? d31:f3) offset address: 08h attribute: ro default value: see bit description size: 8 bits 24.1.6 pi ? programming interface register (smbus ? d31:f3) offset address: 09h attribute: ro default value: 00h size: 8 bits 24.1.7 scc ? sub class code register (smbus ? d31:f3) address offset: 0ah attributes: ro default value: 05h size: 8 bits 24.1.8 bcc ? base class code register (smbus ? d31:f3) address offset: 0bh attributes: ro default value: 0ch size: 8 bits 6 user definable features (udf) ? ro. hardwired to 0. 5 66 mhz capable (66mhz_cap) ? ro. hardwired to 0. 4 capabilities list (cap_list) ? ro. hardwired to 0 because there are no capability list structures in this function 3 interrupt status (ints) ? ro. this bit indicates that an interru pt is pending. it is independent from the state of the interrupt enable bit in the pci command register. 2:0 reserved bit description 7:0 revision id ? ro. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update - nda for the value of the revision id register bit description 7:0 reserved bit description 7:0 sub class code (scc) ? ro. 05h = sm bus serial controller bit description 7:0 base class code (bcc) ? ro. 0ch = serial controller.
792 intel ? 631xesb/632xesb i/o controller hub datasheet smbus controller registers (d31:f3) 24.1.9 smb_base ? smbus base address register (smbus ? d31:f3) address offset: 20?23h attribute: r/w, ro default value: 00000001h size: 32-bits 24.1.10 svid ? subsystem vendor identification register (smbus ? d31:f2/f4) address offset: 2ch?2dh attribute: ro default value: 0000h size: 16 bits lockable: no power well: core 24.1.11 sid ? subsystem identification register (smbus ? d31:f2/f4) address offset: 2eh?2fh attribute: r/wo default value: 0000h size: 16 bits lockable: no power well: core 24.1.12 int_ln ? interrupt line register (smbus ? d31:f3) address offset: 3ch attributes: r/w default value: 00h size: 8 bits bit description 31:16 reserved ? ro 15:5 base address ? r/w. this field provides the 32-byte system i/o base address for the smb logic. 4:1 reserved ? ro 0 io space indicator ? ro. hardwired to 1 indicating that the smb logic is i/o mapped. bit description 15:0 subsystem vendor id (svid) ? ro. the svid register, in combination with the subsystem id (sid) register, enables the operating system (os) to distinguish subsystems from each other. the value returned by reads to this register is the same as that which was written by bios into the ide svid register. note: software can write to this register only once pe r core well reset. writes should be done as a single 16-bit cycle. bit description 15:0 subsystem id (sid) ? ro. the sid register, in combination with the svid register, enables the operating system (os) to distinguish subsystems from each other. the value returned by reads to this register is the same as that which was written by bios into the ide sid register. note: software can write to this register only once pe r core well reset. writes should be done as a single 16-bit cycle. bit description 7:0 interrupt line (int_ln) ? r/w. not used. it is to communicate to software the interrupt line that the interrupt pin is connected to pirqb#.
intel ? 631xesb/632xesb i/o controller hub datasheet 793 smbus controller registers (d31:f3) 24.1.13 int_pn ? interrupt pin register (smbus ? d31:f3) address offset: 3dh attributes: ro default value: see description size: 8 bits 24.1.14 hostc ? host configuration register (smbus ? d31:f3) address offset: 40h attribute: r/w default value: 00h size: 8 bits 24.2 smbus i/o registers bit description 7:0 interrupt pin (int_pn) ? ro. this reflects the value of d31ip.smip in chipset configuration space. bit description 7:3 reserved 2i 2 c_en ? r/w. 0 = smbus behavior. 1 = enabled to communicate with i 2 c devices. this will change the formatting of some commands. 1 smb_smi_en ? r/w. 0 = smbus interrupts will not generate an smi#. 1 = any source of an smb interrupt will instead be routed to generate an smi#. refer to section 5.19.6 (interrupts / smi#). this bit needs to be set for smbalert# to be enabled. 0 smbus host enable (hst_en) ? r/w. 0 = disable the smbus host controller. 1 = enable. the smb host controller interface is enabled to execute commands. the intren bit (offset smbase + 02h, bit 0) needs to be enabled for the smb host controller to interrupt or smi#. note that the smb host controller will not respond to any new requests until all interrupt requests have been cleared. table 24-2. smbus i/o register address map (sheet 1 of 2) smb_base + offset mnemonic register name default type 00h hst_sts host status 00h r/wc, ro, r/wc (special) 02h hst_cnt host control 00h r/w, wo 03h hst_cmd host command 00h r/w 04h xmit_slva transmit slave address 00h r/w 05h hst_d0 host data 0 00h r/w 06h hst_d1 host data 1 00h r/w 07h host_block_db host block data byte 00h r/w 08h pec packet error check 00h r/w 09h rcv_slva receive slave address 44h r/w 0a?0bh slv_data receive slave data 0000h ro 0ch aux_sts auxiliary status 00h r/wc, ro 0dh aux_ctl auxiliary control 00h r/w 0eh smlink_pin_ctl smlink pin control (tco compatible mode) see register description r/w, ro
794 intel ? 631xesb/632xesb i/o controller hub datasheet smbus controller registers (d31:f3) 24.2.1 hst_sts ? host status register (smbus ? d31:f3) register offset: smbase + 00h attribute: r/wc, r/wc (special), ro default value: 00h size: 8-bits all status bits are set by hardware and cleared by the software writing a one to the particular bit position. writing a zero to any bit position has no effect. 0fh smbus_pin_ctl smbus pin control see register description r/w, ro 10h slv_sts slave status 00h r/wc 11h slv_cmd slave command 00h r/w 14h notify_daddr notify device address 00h ro 16h notify_dlow notify data low byte 00h ro 17h notify_dhigh notify data high byte 00h ro table 24-2. smbus i/o register address map (sheet 2 of 2) smb_base + offset mnemonic register name default type bit description 7 byte done status (ds) ? r/wc. 0 = software can clear this by writing a 1 to it. 1 = host controller received a byte (for block read commands) or if it has completed transmission of a byte (for block write commands) when the 32-byte buffer is not being used. note that this bit will be set, even on the last byte of the tran sfer. this bit is not set when transmission is due to the lan interface heartbeat. this bit has no meaning for block transfers when the 32-byte buffer is enabled. note: when the last byte of a block message is received, the host controller will set this bit. however, it will not immediately set the intr bit (bit 1 in this register). when the interrupt handler clears the byte_done_sts bit, the message is considered complete, and the host controller will then set the intr bit (and generate another interrupt). thus, for a block message of n bytes, the intel ? 631xesb/632xesb i/o controller hub will generate n+1 interrupts. the interrupt handler needs to be implemented to handle these cases. 6 inuse_sts ? r/wc (special). this bit is used as semaphore among various independent software threads that may need to use the intel ? 631xesb/632xesb i/o controller hub?s smbus logic, and has no other effect on hardware. 0 = after a full pci reset, a read to this bit returns a 0. 1 = after the first read, subsequent reads will return a 1. a write of a 1 to this bit will reset the next read value to 0. writing a 0 to this bit has no ef fect. software can poll this bit until it reads a 0, and will then own the usage of the host controller. 5 smbalert_sts ? r/wc. 0 = interrupt or smi# was not generated by smbalert#. software clears this bit by writing a 1 to it. 1 = the source of the interrupt or smi# was the smbalert# signal. this bit is only cleared by software writing a 1 to the bit position or by rsmrst# going low. if the signal is programmed as a gpi, then this bit will never be set. 4 failed ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = the source of the interrupt or smi# was a failed bus transaction. this bit is set in response to the kill bit being set to terminate the host transaction. 3 bus_err ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = the source of the interrupt of smi# was a transaction collision.
intel ? 631xesb/632xesb i/o controller hub datasheet 795 smbus controller registers (d31:f3) 24.2.2 hst_cnt ? host control register (smbus ? d31:f3) register offset: smbase + 02h attribute: r/w, wo default value: 00h size: 8-bits note: a read to this register will clear the byte pointer of the 32-byte buffer. 2 dev_err ? r/wc. 0 = software clears this bit by writing a 1 to it. the intel ? 631xesb/632xesb i/o controller hub will then deassert the interrupt or smi#. 1 = the source of the interrupt or smi# was due to one of the following: ? illegal command field, ? unclaimed cycle (host initiated), ?host device time-out error. 1 intr ? r/wc (special). this bit can only be set by termination of a command. intr is not dependent on the intren bit (offset smbase + 02h, bit 0) of the host controller register (offset 02h). it is only dependent on the termination of the command. if the intren bit is not set, then the intr bit will be set, although the interrupt will no t be generated. software can poll the intr bit in this non-interrupt case. 0 = software clears this bit by writing a 1 to it. the intel ? 631xesb/632xesb i/o controller hub then deasserts the interrupt or smi#. 1 = the source of the interrupt or smi# was the successful completion of its last command. 0 host_busy ? ro. 0 = cleared by the intel ? 631xesb/632xesb i/o controller hub when the current transaction is completed. 1 = indicates that the intel ? 631xesb/632xesb i/o controller hub is running a command from the host interface. no smb registers should be accessed while this bit is set, except the block data byte register. the block data byte register can be accessed when this bit is set only when the smb_cmd bits in the host control register are programmed for block command or i 2 c read command. this is necessary in order to check the done_sts bit. bit description bit description 7 pec_en . ? r/w. 0 = smbus host controller does not perform the transaction with the pec phase appended. 1 = causes the host controller to perform the smbus transaction with the packet error checking phase appended. for writes, the value of the pec byte is transferred from the pec register. for reads, the pec byte is loaded in to the pec register. this bit must be written prior to the write in which the start bit is set. 6 start ? wo. 0 = this bit will always return 0 on reads. the host_busy bit in the host status register (offset 00h) can be used to identify when the intel ? 631xesb/632xesb i/o controller hub has finished the command. 1 = writing a 1 to this bit initiates the comman d described in the smb_cmd field. all registers should be setup prior to writing a 1 to this bit position. 5 last_byte ? wo. this bit is used for block read commands. 1 = software sets this bit to indicate that the next byte will be the last byte to be received for the block. this causes the intel ? 631xesb/632xesb i/o controller hub to send a nack (instead of an ack) after receiving the last byte. note: once the second_to_sts bit in tco2_sts register (d31:f0, tcobase+6h, bit 1) is set, the last_byte bit also gets set. while the second_to_sts bit is set, the last_byte bit cannot be cleared. this prevents the intel ? 631xesb/632xesb i/o controller hub from running some of the smbus commands (block read/write, i 2 c read, block i 2 c write).
796 intel ? 631xesb/632xesb i/o controller hub datasheet smbus controller registers (d31:f3) 24.2.3 hst_cmd ? host command register (smbus ? d31:f3) register offset: smbase + 03h attribute: r/w default value: 00h size: 8 bits 4:2 smb_cmd ? r/w. the bit encoding below indicates which command the intel ? 631xesb/632xesb i/o controller hub is to perform. if enabled, the intel ? 631xesb/632xesb i/o controller hub will generate an interrupt or smi# when the command has completed if the value is for a non- supported or reserved command, the intel ? 631xesb/632xesb i/o controller hub will set the device error (dev_err) status bit (offset smbase + 00h, bit 2) and generate an interrupt when the start bit is set. the intel ? 631xesb/632xesb i/o controller hub will perform no command, and will not operate until dev_err is cleared. 000 = quick : the slave address and read/write value (bit 0) are stored in the transmit slave address register. 001 = byte : this command uses the transmit slave address and command registers. bit 0 of the slave address register determines if this is a read or write command. 010 = byte data : this command uses the transmit slave address, command, and data0 registers. bit 0 of the slave address register determines if this is a read or write command. if it is a read, the data0 register will contain the read data. 011 = word data : this command uses the transmit slave address, command, data0 and data1 registers. bit 0 of the slave address register determines if this is a read or write command. if it is a read, after the command completes, the data0 and data1 registers will contain the read data. 100 = process call: this command uses the transmit slave address, command, data0 and data1 registers. bit 0 of the slave address register determines if this is a read or write command. after the command completes, the data0 and data1 registers will contain the read data. 101 = block : this command uses the transmit slave address, command, data0 registers, and the block data byte register. for block write, the count is stored in the data0 register and indicates how many bytes of data will be transferred. for block reads, the count is received and stored in the data0 register. bit 0 of the slave address register selects if this is a read or write command. for writes, data is retrieved from the first n (where n is equal to the specified count) addresses of the sram array. for reads, the data is stored in the block data byte register. 110 = i 2 c read : this command uses the transmit slave address, command, data0, data1 registers, and the block data byte register. the read data is stored in the block data byte register. the intel ? 631xesb/632xesb i/o controller hub continues reading data until the nak is received. 111 = block process: this command uses the transmit slave address, command, data0 and the block data byte register. for block write, the count is stored in the data0 register and indicates how many bytes of data will be transferred. for block re ad, the count is received and stored in the data0 register. bit 0 of the slave address register always indicate a write command. for writes, data is retrieved from the first m (where m is equal to the specified count) addresses of the sram array. for reads, the data is stored in the block data byte register. note: e32b bit in the auxiliary control register must be set for this command to work. 1 kill ? r/w. 0 = normal smbus host controller functionality. 1 = kills the current host transaction taking place, sets the failed status bit, and asserts the interrupt (or smi#). this bit, once set, must be cleared by software to allow the smbus host controller to function normally. 0 intren ? r/w. 0 = disable. 1 = enable the generation of an interrupt or smi# upon the completion of the command. bit description bit description 7:0 this 8-bit field is transmitted by the host cont roller in the command field of the smbus protocol during the execution of any command.
intel ? 631xesb/632xesb i/o controller hub datasheet 797 smbus controller registers (d31:f3) 24.2.4 xmit_slva ? transmit slave address register (smbus ? d31:f3) register offset: smbase + 04h attribute: r/w default value: 00h size: 8 bits this register is transmitted by the host controller in the slave address field of the smbus protocol. 24.2.5 hst_d0 ? host data 0 register (smbus ? d31:f3) register offset: smbase + 05h attribute: r/w default value: 00h size: 8 bits 24.2.6 hst_d1 ? host data 1 register (smbus ? d31:f3) register offset: smbase + 06h attribute: r/w default value: 00h size: 8 bits bit description 7:1 address ? r/w. this field provides a 7-bit address of the targeted slave. 0 rw ? r/w. direction of the host transfer. 0 = write 1 = read bit description 7:0 data0/count ? r/w. this field contains the eight bit data sent in the data0 field of the smbus protocol. for block write commands , this register reflects the number of bytes to transfer. this register should be programmed to a value between 1 and 32 for block counts. a count of 0 or a count above 32 will result in unpredictable behavior. the host controller does not check or log illegal block counts. bit description 7:0 data1 ? r/w. this 8-bit register is transmitted in the data1 field of the smbus protocol during the execution of any command.
798 intel ? 631xesb/632xesb i/o controller hub datasheet smbus controller registers (d31:f3) 24.2.7 host_block_db ? host block data byte register (smbus ? d31:f3) register offset: smbase + 07h attribute: r/w default value: 00h size: 8 bits 24.2.8 pec ? packet error check (pec) register (smbus ? d31:f3) register offset: smbase + 08h attribute: r/w default value: 00h size: 8 bits 24.2.9 rcv_slva ? receive slave address register (smbus ? d31:f3) register offset: smbase + 09h attribute: r/w default value: 44h size: 8 bits lockable: no power well: resume bit description 7:0 block data (bdta) ? r/w. this is either a register, or a pointer into a 32-byte block array, depending upon whether the e32b bit is set in the auxiliary control register. when the e32b bit (offset smbase + 0dh, bit 1) is cleared, this is a register containing a byte of data to be sent on a block write or read from on a block read, just as it behaved on the ich3. when the e32b bit is set, reads and writes to this register are used to access the 32-byte block data storage array. an internal index pointer is used to address the array, which is reset to 0 by reading the hctl register (offset 02h). the index pointer then increments automatically upon each access to this register. the transfer of block data into (rea d) or out of (write) this storage array during an smbus transaction always starts at index address 0. when the e2b bit is set, for writes, software will write up to 32-bytes to this register as part of the setup for the command. after the host controller has sent the address, command, and byte count fields, it will send the bytes in the sram pointed to by this register. when the e2b bit is cleared for writes, software will place a single byte in this register. after the host controller has sent the address, command, and byte count fields, it will send the byte in this register. if there is more data to send, software will write the next series of bytes to the sram pointed to by this register and clear the done_sts bit. the controller will then send the next byte. during the time between the last byte being tran smitted to the next byte being transmitted, the controller will insert wait-states on the interface. when the e2b bit is set for reads, after receiving the byte count into the data0 register, the first series of data bytes go into the sram pointed to by this register. if the byte count has been exhausted or the 32-byte sram has been filled, the controller will generate an smi# or interrupt (depending on configuration) and set the done_sts bit. software will then read the data. during the time between when the last byte is read from the sram to when the done_sts bit is cleared, the controller will insert wait-states on the interface. bit description 7:0 pec_data ? r/w. this 8-bit register is written with the 8-bit crc value that is used as the smbus pec data prior to a write transaction. for read transactions, the pec data is loaded from the smbus into this register and is then read by software. software must ensure that the inuse_sts bit is properly maintained to avoid having this field ov er-written by a write transaction following a read transaction. bit description 7 reserved 6:0 slave_addr ? r/w. this field is the slave address that the intel ? 631xesb/632xesb i/o controller hub decodes for read and write cycles. the default is not 0, so the smbus slave interface can respond even before the processor comes up (or if the processor is dead). this register is cleared by rsmrst#, but not by pltrst#.
intel ? 631xesb/632xesb i/o controller hub datasheet 799 smbus controller registers (d31:f3) 24.2.10 slv_data ? receive slave data register (smbus ? d31:f3) register offset: smbase + 0ah?0bh attribute: ro default value: 0000h size: 16 bits lockable: no power well: resume this register contains the 16-bit data value written by the external smbus master. the processor can then read the value from this register. this register is reset by rsmrst#, but not pltrst# . 24.2.11 aux_sts ? auxiliary status register (smbus ? d31:f3) register offset: smbase + 0ch attribute: r/wc, ro default value: 00h size: 8 bits lockable: no power well: resume . 24.2.12 aux_ctl ? auxiliary cont rol register (smbus ? d31:f3) register offset: smbase + 0dh attribute: r/w default value: 00h size: 8 bits lockable: no power well: resume . bit description 15:8 data message byte 1 (data_msg1) ? ro. see section 5.21.2 for a discussion of this field. 7:0 data message byte 0 (data_msg0) ? ro. see section 5.21.2 for a discussion of this field. bit description 7:2 reserved 1 smbus tco mode (stco) ? ro. this bit reflects the strap setting of tco compatible mode vs. advanced tco mode. 0 = in the compatible tco mode. 1 = in the advanced tco mode. 0 crc error (crce) ? r/wc. 0 = software clears this bit by writing a 1 to it. 1 = this bit is set if a received message contained a crc error. when this bit is set, the derr bit of the host status register will also be set. this bit will be set by the controller if a software abort occurs in the middle of the crc portion of the cycle or an abort happens after the intel ? 631xesb/632xesb i/o controller hub has received the final data bit transmitted by an external slave. bit description 7:2 reserved 1 enable 32-byte buffer (e32b) ? r/w. 0 = disable. 1 = enable. when set, the host block data register is a pointer into a 32-byte buffer, as opposed to a single register. this enables the block commands to transfer or receive up to 32-bytes before the intel ? 631xesb/632xesb i/o controller hub generates an interrupt. 0 automatically append crc (aac) ? r/w. 0 = will not automatically append the crc. 1 = will automatically append the crc. this bit must not be changed during smbus transactions or undetermined behavior will result. it should be programmed only once during the lifetime of the function.
800 intel ? 631xesb/632xesb i/o controller hub datasheet smbus controller registers (d31:f3) 24.2.13 smlink_pin_ctl ? smlink pin control register (smbus ? d31:f3) register offset: smbase + 0eh attribute: r/w, ro default value: see below size: 8 bits note: this register is in the resume well and is reset by rsmrst#. this register is only applicable in the tco compatible mode. 24.2.14 smbus_pin_ctl ? smbus pin control register (smbus ? d31:f3) register offset: smbase + 0fh attribute: r/w, ro default value: see below size: 8 bits note: this register is in the resume well and is reset by rsmrst#. bit description 7:3 reserved 2 smlink_clk_ctl ? r/w. 0 = intel ? 631xesb/632xesb i/o controller hub will drive the smlink0 pin low, independent of what the other smlink logic would otherwise indicate for the smlink0 pin. 1 = the smlink0 pin is not overdriven low. the other smlink logic controls the state of the pin. (default) 1 smlink1_cur_sts ? ro. this read-only bit has a default value that is dependent on an external signal level. this pin returns the value on the smli nk1 pin. this allows software to read the current state of the pin. 0 = low 1 = high 0 smlink0_cur_sts ? ro. this read-only bit has a default value that is dependent on an external signal level. this pin returns the value on the smli nk0 pin. this allows software to read the current state of the pin. 0 = low 1 = high bit description 7:3 reserved 2 smbclk_ctl ? r/w. 1 = the smbclk pin is not overdriven low. the other smbus logic controls the state of the pin. 0 = intel ? 631xesb/632xesb i/o controller hub drives the smbclk pin low, independent of what the other smb logic would otherwise indicate for the smbclk pin. (default) 1 smbdata_cur_sts ? ro. this read-only bit has a default value that is dependent on an external signal level. this pin returns the value on the smbd ata pin. this allows software to read the current state of the pin. 0 = low 1 = high 0 smbclk_cur_sts ? ro. this read-only bit has a default value that is dependent on an external signal level. this pin returns the value on the smbclk pin. this allows software to read the current state of the pin. 0 = low 1 = high
intel ? 631xesb/632xesb i/o controller hub datasheet 801 smbus controller registers (d31:f3) 24.2.15 slv_sts ? slave status register (smbus ? d31:f3) register offset: smbase + 10h attribute: r/wc default value: 00h size: 8 bits note: this register is in the resume well and is reset by rsmrst#. all bits in this register are implemented in the 64 khz clock domain. therefore, software must poll this register until a write takes effect before assuming that a write has completed internally. 24.2.16 slv_cmd ? slave command register (smbus ? d31:f3) register offset: smbase + 11h attribute: r/w default value: 00h size: 8 bits note: this register is in the resume well and is reset by rsmrst#. bit description 7:1 reserved 0 host_notify_sts ? r/wc. the intel ? 631xesb/632xesb i/o controller hub sets this bit to a 1 when it has completely received a successful host notify command on the smlink pins. software reads this bit to determine that the source of the interrupt or smi# was the reception of the host notify command. software clears this bit after reading any information needed from the notify address and data registers by writing a 1 to this bit. note that the intel ? 631xesb/632xesb i/o controller hub will allow the notify address and data registers to be over-written once this bit has been cleared. when this bit is 1, the intel ? 631xesb/632xesb i/o controller hub will nack the first byte (host address) of any new ?host notify? commands on the smlink. writing a 0 to this bit has no effect. bit description 7:3 reserved 2 smbalert_dis ? r/w. 0 = allows the generation of the interrupt or smi#. 1 = software sets this bit to block the generation of the interrupt or smi# due to the smbalert# source. this bit is logically inverted and anded with the smbalert_sts bit (offset smbase + 00h, bit 5). the resulting signal is distributed to the smi# and/or interrupt generation logic. this bit does not effect the wake logic. 1 host_notify_wken ? r/w. software sets this bit to 1 to enable the reception of a host notify command as a wake event. when enabled this event is ?or?ed in with the other smbus wake events and is reflected in the smb_wak_sts bit of the general purpose event 0 status register. 0 = disable 1 = enable 0 host_notify_intren ? r/w. software sets this bit to 1 to enable the generation of interrupt or smi# when host_notify_sts (offset smbase + 10h, bit 0) is 1. this enable does not affect the setting of the host_notify_sts bit. when the interrupt is generated, either pirqb# or smi# is generated, depending on the value of the smb_smi_en bit (d31:f3:40h, bit 1). if the host_notify_sts bit is set when this bit is written to a 1, then the interrupt (or smi#) will be generated. the interrupt (or smi#) is logically generated by and?ing the sts and intren bits. 0 = disable 1 = enable
802 intel ? 631xesb/632xesb i/o controller hub datasheet smbus controller registers (d31:f3) 24.2.17 notify_daddr ? notify device address register (smbus ? d31:f3) register offset: smbase + 14h attribute: ro default value: 00h size: 8 bits note: this register is in the resume well and is reset by rsmrst#. 24.2.18 notify_dlow ? notify data low byte register (smbus ? d31:f3) register offset: smbase + 16h attribute: ro default value: 00h size: 8 bits note: this register is in the resume well and is reset by rsmrst#. 24.2.19 notify_dhigh ? notify data high byte register (smbus ? d31:f3) register offset: smbase + 17h attribute: ro default value: 00h size: 8 bits note: this register is in the resume well and is reset by rsmrst#. bit description 7:1 device_address ? ro. this field contains the 7-bit device address received during the host notify protocol of the smbus 2.0 specification. soft ware should only consider this field valid when the host_notify_sts bit (d31:f3:smbase +10, bit 0) is set to 1. 0 reserved bit description 7:0 data_low_byte ? ro. this field contains the first (low) byte of data received during the host notify protocol of the smbus 2.0 specification. software should only consider this field valid when the host_notify_sts bit (d31:f3:smbase +10, bit 0) is set to 1. bit description 7:0 data_high_byte ? ro. this field contains the second (high) byte of data received during the host notify protocol of the smbus 2.0 specification. software should only consider this field valid when the host_notify_sts bit (d31:f3:smbase +10, bit 0) is set to 1.
intel ? 631xesb/632xesb i/o controller hub datasheet 803 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25 lan controller and bmc registers (bn:f0/f1/f2/f3/ f4/f5/f7) the intel ? 631xesb/632xesb i/o controller hub integrated lan controller resides at pci bus n, device 0, function 0 on the secondary side of the intel ? 631xesb/632xesb i/o controller hub?s virtual pci-to-pci bridge. this bus is assigned a number during pci bus enumeration, configured by bios during system configuration. the lan controller acts as both a master and a slave on the pci bus. as a master, the lan controller interacts with the system main memory to access data for transmission or deposit received data. as a slave, some of the lan controller?s control structures are accessed by the host processor to read or write information to the on-chip registers. the processor also provides the lan controller with the necessary commands and pointers that allow it to process receive and transmit data. 25.1 lan controller registers (bn:f0/f 1 ) note: address locations that are not shown should be treated as reserved (see section 2.3 for details). . table 25-1. intel ? 6321esb i/o controller hub integrated lan controller pci register address map (lan0 ? bn:f0), (lan1 ? bn:f1) (sheet 1 of 3) offset mnemonic register name default type mandatory pci configuration registers 00?01h vid vendor identification 8086h ro 02?03h did device identification see register desc. ro 04?05h pcicmd pci command 0000h ro, rw 06?07h pcists pci status 0010h ro, r/wc 08h rid revision identification see register desc. ro 09h pi programming interface 00h ro 0ah scc sub class code 00h ro 0bh bcc base class code 01h/02h ro 0ch cls cache line size 10h r/w 0dh pmlt primary master latency timer 00h r/w 0eh headtyp header type 00h/80h ro
804 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) bar registers for 32-bit addressing modes 10?13h csr_mem_base csr memory?mapped base address 00000000h r/w, ro 14?17h csr_flash_base csr flash base address 00000000h r/w, ro 18?1bh csr_io_base csr i/o?mapped base address 00000001h r/w, ro 2c?2dh svid subsystem vendor identification see register desc ro 2e?2fh sid subsystem identification see register desc ro 30-33h csr_exp_rom_base csr expansion rom base address 00000000h r/w 34h cap_ptr capabilities pointer c8h ro 3ch int_ln interrupt line 00h r/w 3dh int_pn interrupt pin 01h ro 3eh min_gnt minimum grant 00h ro 3fh max_lat maximum latency 00h ro pci power management registers c8h cap_id capability id 01h ro c9h nxt_ptr next item pointer d0h ro ca?cbh pm_cap power management capabilities see register desc ro cc?cdh pmcsr power management control/status 2000h r/w, ro, r/ wc cf pcidata pci power management data 00h ro message signaled interrupt configuration registers d0h msi_cap_id msi capability id 05h ro d1h msi_nxt_ptr msi t next item pointer e0h ro d2-d3 msi_mcr msi control register 0080 r/w d4-d7h msi_mar_low msi message low address 00000000h r/w d8-db msi_mar_high msi message high address 00000000h r/w dc-dd msi_mdr message data register 0000 r/w pci express* configuration registers e0h pci express_cap_id pci express capability identification register 10h ro e1h pci express_nxt_ptr pci express next item pointer 00h ro e2-e3 pci express_cap pci express capability 0001h ro e4-e7h pci express_dev_cap pci express device capability 00000cc1h ro e8-e9 pci express_dev_cont pci express device control 2810h r/w ea-eb pci express_dev_status pci express device status 0000h ro ec-ef pci express_link_cap pci express link capability see register desc ro f0-f1 pci express_link_cont pci express link control 0000h r/w f2-f3 pci express_link_status pci express link status 1041h ro pci express* extended configuration registers 100-103h pci express_ext_cap_id pci express extended capability identification register 00010001h ro table 25-1. intel ? 6321esb i/o controller hub integrated lan controller pci register address map (lan0 ? bn:f0), (lan1 ? bn:f1) (sheet 2 of 3) offset mnemonic register name default type
intel ? 631xesb/632xesb i/o controller hub datasheet 805 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.1 vid ? vendor identification register (bn:f0/f1) offset address: 00?01h attribute: ro default value: 8086h size: 16 bits 25.1.2 did ? device identification register (bn:f0/f1) these are the device id values which should be put in the eeprom for the various lan modes. offset address: 02?03h attribute: ro default value: see bit description size: 16 bits 104-107h uncorr_err_status uncorrectable error status 00000000h r/wcs 108-10bh uncorr_err_mask uncorrectable error mask 00000000h r/ws 10c-10fh uncorr_err_sev uncorrectable error severity 00062011h r/ws 110-113h corr_err_status correctable error status 00000000h r/wcs 114-117h corr_err_mask correctable error mask 00000000h r/ws 118-11bh fst_err_pt first error pointer 00000000h ro 11c-128h head_log head log 0h ro table 25-1. intel ? 6321esb i/o controller hub integrated lan controller pci register address map (lan0 ? bn:f0), (lan1 ? bn:f1) (sheet 3 of 3) offset mnemonic register name default type bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel. bit description 15:0 device id ? ro. this is a 16-bit value assigned to the intel ? 6321esb i/o controller hub integrated lan controller. 1. lan0: if word 0ah bit 0 is set in the eeprom, the device id is loaded from the eeprom, word 0dh after the hardware reset. if not set, the default value is 1081h. 2. lan1: if word 0ah bit 0 is set in the eeprom, the device id is loaded from the eeprom, word 11h after the hardware reset. if not set the default value is 1081h. 1096h = intel ? 6321esb i/o controller hub ioat lan copper: dual port 10/100/1000mbit ethernet controller integrated into intel ? 6321esb i/o controller hub, copper interface, with io acceleration te c h n o l o g y 1097h = intel ? 6321esb i/o controller hub ioat lan fiber: dual port 1000mbit ethernet controller integrated into intel ? 6321esb i/o controller hub; using fiber media from serdes port, with io acceleration technology 1098h = intel ? 6321esb i/o controller hub ioat lan serdes: dual port 1000mbit ethernet controller, 1000base-x backplane, with io acceleration technology 10bah= intel ? 6321esb i/o controller hub ioat lan copper: single port 10/100/1000 mb ethernet controller integrated into esb2, with intel i/o acceleration technology 10bbh= intel ? 6321esb i/o controller hub ioat lan super pass through (spt) serdes: single port 10/100/1000 mb ethernet controller integrated into intel ? 6321esb i/o controller hub, with intel i/o acceleration technology.
806 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.3 pcicmd ? pci command register (bn:f0/f1) offset address: 04?05h attribute: ro, r/w default value: 0000h size: 16 bits 25.1.4 pcists ? pci status register (bn:f0/f1) offset address: 06?07h attribute: ro, r/wc default value: 0010h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. bit description 15:11 reserved 10 interrupt disable ? r/w. 0 = enable. 1 = disables lan controller to assert its inta/intb signal. note: the interrupt disable register bit is a read-write bit that controls the ability of a pci express device to generate a legacy interrupt message. when set, devices are prevented from generating legacy interrupt messages. 9 fast back to back enable (fbe) ? ro. hardwired to 0. the integrated lan controller will not run fast back-to-back pci cycles. 8 serr# enable (serr_en) ? r/w. 0 = disable. 1 = enable. 7 wait cycle enable (wce) ? ro. hardwired to 0. not implemented. 6 parity error response (per) ? r/w. 0 = the lan controller will set pcists[8] upon receiving poisoned completion. 1 = the lan controller will not set pcists[8] upon receiving poisoned completion. 5 palette snoop enable (pse) ? ro. hardwired to 0. not implemented. 4 memory write and invalidate enable (mwie) ? ro. hardwired to 0. not implemented. 3 special cycle enable (sce) ? ro. hardwired to 0. the lan controller ignores special cycles. 2 bus master enable (bme) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated lan controller may function as a pci bus master. 1 memory space enable (mse) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated lan controller will respond to the memory space accesses. 0 i/o space enable (iose) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated lan controller will respond to the i/o space accesses. bit description 15 detected parity error ( dpe) ? r/wc. when set, indicates that a poisoned completion was received. 14 signaled system error ( sse) ? r/wc. when set, indicates that the lan controller has sent an uncorrectable error message. 13 master abort status ( rma) ? r/wc. when set, indicates that the lan controller has received a completion with unsupported request status. 12 received target abort (rta) ? r/wc. when set, indicates that the lan controller has received a completion with completion abort status.
intel ? 631xesb/632xesb i/o controller hub datasheet 807 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.5 rid ? revision identification register (bn:f0/f1) offset address: 08h attribute: ro default value: see bit description size: 8 bits 25.1.6 pi ? programming interface register (bn:f2) offset address: 09h attribute: ro default value: 00h size: 8 bits 25.1.7 scc ? sub class code register (bn:f0/f1) offset address: 0ah attribute: ro default value: 00h size: 8 bits 25.1.8 bcc ? base class code register (bn:f0/f1) offset address: 0bh attribute: ro default value: 01h/02h size: 8 bits 11 signaled target abort (sta) ? r/wc. when set, indicates that the lan controller has sent a completion with completion abort status. 10:9 devsel timing ? ro. hardwired to 0. 8 data parity error detected (dped) ? r/wc. this bit will be set when pcicmd[6] is set and a poisoned completion was received. 7 fast back to back capable (fb2bc) ? ro. hardwired to 0. not implemented. 6 reserved. 5 66 mhz capable (66mhz_cap) ? ro. hardwired to 0. not implemented. 4 capabilities list (cap_list) ? ro.indicates that a device implements extended capabilities. this bit is hardwrite to 1. 3 interrupt status (ints) ? ro. this bit indicates that an interr upt is pending. it is independent from the state of the interrupt enable bit in the command register. 2:0 reserved bit description bit description 7:0 revision id (rid) ? ro. this field value is set by the crid mechanism described in section 25.1.41 . note: lan 0 and lan 1 functions have the same revision id. bit description 7:0 programming interface(pi) ? ro. this 8-bit value specifies the class code as the programming i/ f class. bit description 7:0 sub class code (scc) ? ro. this 8-bit value specifies the sub class of the device as an ethernet controller. bit description 7:0 base class code (bcc) ? ro. this 8-bit value specifies the base class of the device as a network controller.
808 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.9 cls ? cache line size register (bn:f0/f1) offset address: 0ch attribute: r/w default value: 10h size: 8 bits 25.1.10 pmlt ? primary master la tency timer register (bn:f0/f1) offset address: 0dh attribute: r/w default value: 00h size: 8 bits 25.1.11 headtyp ? header type register (bn:f0/f1) offset address: 0eh attribute: ro default value: 00h, 80h size: 8 bits 25.1.12 base address registers (bn:f0/f1) the base address registers (or bars) are used to map the register space of the various functions. 25.1.12.1 csr_mem_base ? csr memory-mapped base address register (bn:f0/f1) offset address: 10?13h attribute: r/w, ro default value: 00000000h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated lan controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the lan controller?s csr registers. bit description 7:0 cache line size(cls) ? r/w. 0x10 is the hardware default for this register. bit description 7:0 reserved bit description 7 multi-function device (mfd) ? ro. hardwired to 0 to indicate a single function device, that is, if only a single function is active. 1 for multiple function 6:0 header type (htype) ? ro. this 7-bit field identifies the header layout of the configuration space as an ethernet controller. bit description 31:17 base address (mem_addr) ? r/w. this field contains the upper 15 bits of the base address provides 128kb of memory-mapped space for t he lan controller?s control/status registers. 16:4 reserved 3 prefetchable (mem_pf) ? ro. hardwired to 0 to indicate that this is not a pre-fetchable memory- mapped address range. 2:1 type (mem_type) ? ro. hardwired to 00b to indicate the memory-mapped address range may be located anywhere in 32-bit address space. 0 memory-space indicator (mem_space) ? ro. hardwired to 0 to indicate that this base address maps to memory space.
intel ? 631xesb/632xesb i/o controller hub datasheet 809 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.12.2 csr_flash_base ? csr flash base address register (bn:f0/f1) offset address: 14?17h attribute: r/w, ro default value: 00000000h size: 32 bits note: 1. the intel ? 6321esb i/o controller hub?s integrated lan controller requires one bar for flash mapping. software determines which bar (memory or i/o) is used to access the lan controller?s csr registers. 2. this bar exist depending on eeprom setting. 25.1.12.3 csr_io_base ? csr i/o-mapped base address register (bn:f0/f1) offset address: 18?1bh attribute: r/w, ro default value: 00000001h size: 32 bits note: 1. the intel ? 6321esb i/o controller hub?s integrated lan controller requires one bar for i/o mapping. software determines which bar (memory or i/o) is used to access the lan controller?s csr registers. 2. this bar exist depending on eeprom setting. 25.1.13 svid ? subsystem vendor identification(bn:f0/f1) offset address: 2c?2d attribute: ro default value: 8086h size: 16 bits bit description 31:24/ 16 base address (mem_addr) ? r/w. this field contains the upper 20 bits of the base address and provides 4 kbytes of memory-mapped space for the lan controller?s memory mapped flash. 23/15:4 reserved 3 prefetchable (mem_pf) ? ro. hardwired to 0 to indicate that this is not a pre-fetchable memory-mapped address range. 2:1 type (mem_type) ? ro. hardwired to 00b to indicate the memory-mapped address range may be located anywhere in 32-bit address space. 0 memory-space indicator (mem_space) ? ro. hardwired to 0 to indicate that this base address maps to memory space. bit description 31:5 base address (io_addr) ? r/w. this field provides 32 bytes of i/o-mapped address space for the lan controller?s control/status registers. 4:1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space. bit description 15:0 subsystem vendor id (svid) ? ro. this value may be loaded automatically from the eeprom address 0ch upon power up or reset if word 0ah bit 1 is set. a value of 0x8086 is default for this field upon power up if the eeprom does not respond or is not programmed.
810 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.14 sid ? subsystem identification (bn:f0/f1) offset address: 2e?2fh attribute: ro default value: 0000h size: 16 bits 25.1.15 csr_exp_rom_base ? csr expansion rom base address offset address: 30?33h attribute: r/w default value: 00000000h size: 32 bits this register is used to define the address and size information for boot-time access to the optional flash memory. only the lan 0/lan 1 and ide functions may have this window. it is enabled by the eeprom words 24h, 14h and 1ch for lan 0, lan 1 and ide functions respectively. this register returns zero value for functions without expansion rom window. 25.1.16 cap_ptr ? capabilities pointer (bn:f0/f1) offset address: 34h attribute: ro default value: c8h size: 8 bits 25.1.17 int_ln ? interrupt line register (bn:f0/f1) offset address: 3ch attribute: r/w default value: 00h size: 8 bits bit description 15:0 subsystem id (sid) ? ro. this value may be loaded automatically from the eeprom address 0bh upon power up if word 0ah bit 1 is set. a value of 0x0000 is default for this field upon power up if the eeprom does not respond or is not programmed. bit description 31:11 base address (exp_rom_addr) ? r/w. hardwired to 0 depending on the memory mapping window size. the lan expansion rom spaces can be either 64k, up to 8mb in power of 2. mapping window size is set by the eeprom word 0fh. 10:1 reserved 0 expansion rom access enable (exp_rom_en) ? r/w. 1 enables expansion rom access. 0 disables expansion rom access. bit description 7:0 capabilities pointer (cap_ptr) ? ro. hardwired to c8h to indicate the offset within configuration space for the location of the power management registers. bit description 7:0 interrupt line (int_ln) ? r/w. this field identifies the system interrupt line to which the lan controller?s pci interrupt request (as defined in the interrupt pin register) is routed.
intel ? 631xesb/632xesb i/o controller hub datasheet 811 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.18 int_pn ? interrupt pin register (bn:f0/f1) offset address: 3dh attribute: ro default value: 01h size: 8 bits 25.1.19 min_gnt ? minimum grant register (bn:f0/f1) offset address: 3eh attribute: ro default value: 00h size: 8 bits 25.1.20 max_lat ? maximum latency register (bn:f0/f1) offset address: 3fh attribute: ro default value: 00h size: 8 bits 25.1.21 cap_id ? capability identification register (bn:f0/f1) offset address: c8h attribute: ro default value: 01h size: 8 bits 25.1.22 nxt_ptr ? next item pointer (bn:f0/f1) offset address: c9h attribute: ro default value: d0h size: 8 bits bit description 7:0 interrupt pin (int_pn) ? ro. lan 0 / lan 1 - a value of 01h / 02h indicates that this function implements legacy interrupt on inta# / intb# respectively. loaded from eeprom word 24h / 14h for lan 0 and lan 1 respectively. bit description 7:0 minimum grant (min_gnt) ? ro. not used, hardwired to 00h. bit description 7:0 maximum latency (max_lat) ? ro. not used, hardwired to 00h. bit description 7:0 capability id (cap_id) ? ro. hardwired to 01h to indicate that the intel ? 6321esb i/o controller hub?s integrated lan controller supports pci power management. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to d0h to indicate that msi is the next capability item in the capabilities list.
812 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.23 pm_cap ? power management capabilities (bn:f0/f1) offset address: ca?cbh attribute: ro default value: see bit description size: 16 bits 25.1.24 pmcsr ? power management control status register (bn:f0/f1) offset address: cc?cdh attribute: ro, r/w, r/wc default value: 2000h size: 16 bits bit description 15:11 pme support (pme_sup) ? ro. this 5-bit field indicates the power states in which the lan controller may assert pme#. the default value depends on eeprom word 0ah. 00000b = no pme at all states. 01001b = pme at d0 and d3 hot 11001b = pme at d0, d3 hot and d3 cold 10:9 hardwired to '0'. 8:6 auxiliary current (aux_cur) ? ro. hardwired to 000b to indicate that the lan controller implements the data registers. 5 device specific initialization (dsi) ? ro. hardwired to 1 to indicate that special initialization of this function is required (beyond the standard pci configuration header) before the generic class device driver is able to use it. dsi is required for the lan controller after d3-to-d0 reset. 4 reserved 3 pme clock (pme_clk) ? ro. hardwired to 0 to indicate that the lan controller does not require a clock to generate a power management event. 2:0 version (ver) ? ro. hardwired to 010b to indicate that the lan controller complies with of the pci power management specification, revision 1.1. bit description 15 pme status (pme_stat) ? r/wc. 0 = software clears this bit by writing a 1 to it. this also de-asserts the pe_wake# signal, when enabled, and stops pm_pme messages transmission. 1 = set upon occurrence of a wakeup event, independent of the state of the pme enable bit. 14:13 data scale (dscale) ? ro. this field indicates the data register scaling factor. it equals 01b for all supported registers: 0,3,4,7 and 8, as selected by the ?data select? field. 12:9 data select (dsel) ? r/w. this field is used to select which data is reported through the data register and data scale field. 8 pme enable (pme_en) ? r/w. this bit enables the intel ? 6321esb i/o controller hub?s integrated lan controller to set a power management event in order to wake the system, through the pe_wake# signal or through a pm_pme message. 0 = the device will not set a pme event. 1 = enable setting pme event when pme status is set. 7:2 reserved 1:0 power state (pwr_st) ? r/w. this 2-bit field is used to determine the current power state of the integrated lan controller, and to put it into a new power state. the definition of the field values is as follows: 00 = d0 01/10 = reserved 11 = d3
intel ? 631xesb/632xesb i/o controller hub datasheet 813 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.25 pcidata ? pci power mana gement data register (bn:f0/ f1) offset address: cfh attribute: ro default value: 00h size: 8 bits this optional register is used to report power consumption and heat dissipation. reported register is controlled by the data_select field in the pmcsr, and the power scale is reported in the data_scale field in the pmcsr. the data of this field is loaded from the eeprom if pm is enabled in the eeprom or with a default value of 0x00 otherwise. the values for intel ? 6321esb i/o controller hub lan controller functions is shown in ta bl e 2 5 . 2 . 25.1.26 msi_cap_id ? capability identification register (bn:f0/ f1) offset address: d0h attribute: ro default value: 05h size: 8 bits 25.1.27 msi_nxt_ptr ? next item pointer (bn:f0/f1) offset address: d1h attribute: ro default value: e0h size: 8 bits bit description 7:0 power management data (pwr_mgt) ? ro. state dependent power consumption and heat dissipation data. table 25-2. data register structure function d0 (consume/ dissipate) d3 (consume/ dissipate) common data_scale data_select (0x0 / 0x4) (0x3 / 0x7) (0x8) function 0 eep addr 22h eep addr 22h [4:0] eep addr 22h [7:5] 01b function 1 eep addr 22h eep addr 22h [4:0] eep addr 22h [7:5] 01b bit description 7:0 capability id (cap_id) ? ro. hardwired to 05h to indicate that the linked list item is being the message signaled interrupt registers. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to e0h to indicate that pci express capability is the next item in the capability list.
814 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.28 msi_mcr ? message control register (bn:f0/f1) offset address: d2?d3h attribute: ro default value: 0080h size: 16 bits 25.1.29 msi_mar_low ? message address low register (bn:f0/ f1) offset address: d4?d7h attribute: ro, r/w, r/wc default value: 00000000h size: 32 bits 25.1.30 msi_mar_high ? message address high register (bn:f0/ f1) offset address: d8?dbh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 25.1.31 msi_mdr ? message data register (bn:f0/f1) offset address: dc?ddh attribute: r/w default value: 0000h size: 16 bits bit description 15:8 reserved. reads as 0. 7 64 support (64_sup) ? ro. hardwired to 1 to indicate that the lan controller is capable of generating 64 bit message addresses. 6:4 multiple message enable(mm_enable) ? ro. hardwired to 000b to indicate that the lan controller supports single message per function. 3:1 multiple message capable(mm_cap) ? ro. hardwired to 000b to indicate that the lan controller capable of single requested message per function. 0 msi enable(msi_enable) ? r/w. if 1, the lan controller will generate msi for interrupt assertion instead of intx signaling. bit description 31:0 message address low(msg_addr_low) ? r/w. written by the system to indicate the lower 32 bits of the address to use for the msi memory write transaction. the lower two bits will always return 0 regardless of the write operation. bit description 31:0 message address high(msg_addr_high) ? r/w. this field contains the upper 32 bits of the address to use for the msi memory write transaction. bit description 15:0 message data(msg_data) ? r/w. written by the system to indicate the lower 16 bits of the data written in the msi memory write dword transaction. the upper 16 bits of the transaction are written as 0
intel ? 631xesb/632xesb i/o controller hub datasheet 815 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.32 pci express_cap_id ? pci express* capability identification register (bn:f0/f1) offset address: e0h attribute: ro default value: 10h size: 8 bits 25.1.33 pci express_nxt_ptr ? pci express* next item pointer (bn:f0/f1) offset address: e1h attribute: ro default value: 00h size: 8 bits 25.1.34 pci express_cap ? pci express* capability register (bn:f0/f1) offset address: e2?e3h attribute: ro default value: 0001h size: 16 bits 25.1.35 pci express_dev_cap ? pci express* device capability register (bn:f0/f1) offset address: e4?e7h attribute: ro, r/w, r/wc default value: 00000cc1h size: 32 bits bit description 7:0 capability id (cap_id) ? ro. hardwired to 10h to indicate that the linked list item is being the pci express capability registers. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to 00h to indicate that it is the last item in the capability linked list. bit description 15:14 reserved. 13:9 interrupt message number (int_msg_num) ? ro. multiple msi per function is not supported. hardwired to 00000b 8 slot implemented ? ro. slot option not implemented hardwired to 0. 7:4 device/port type ? ro. indicates the type of pci express functions. hardwired to 0001b 3:0 capability version(cap_version) ? ro. indicates the pci express capability structure version number 0001b. bit description 31:28 reserved. 27:26 slot power limit scale ? ro. used in upstream port only. hardwired to 00b. 25:18 slot power limit value ? ro. used in upstream port only. hardwired to 00b 17:15 reserved. 14 power indicator present ? ro. hardwired to 0b 13 attention indicator present ? ro. hardwired to 0b 12 attention button present ? ro. hardwired to 0b
816 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.36 pci express_dev_cont ? pci express* device control register (bn:f0/f1) offset address: e8?e9h attribute: ro, r/w default value: 2810h size: 16 bits 25.1.37 pci express_dev_status ? pci express* device status register (bn:f0/f1) offset address: ea?ebh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 11:9 endpoint l1 acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan can withstand due to the transition from l1 state to the l0 state. all functions share the same value loaded from the eeprom pci express* init configuration 1 word 18h 8:6 endpoint l0s acceptable latency ? l0s is not supported by intel ? 6321esb i/o controller hub lan. 5 extended tag field supported ? ro. max supported size of the tag field. intel ? 6321esb i/o controller hub supported 5-bit tag field for all functions. 4:3 phantom function supported ? ro. hardwired to 00b. not supported. 2:0 max payload size supported ? ro. this field indicates the maximum payload that the device can support for tlps. it is loaded from the eeprom pci express init configuration 3 word 1ah bit 8 with a default value of 256b. bit description bit description 15 reserved. 14:12 max read request size - this field sets maximum read request size for the device as a requester. the default value is 010b (512b) for the lan devices. 11 enable no snoop ? r/w. snoop is gated by nonsnoop bits in the gcr register in the csr space. default is 1b 10 auxiliary power pm enable - when set enables the device to draw aux power independent of pme aux power. 9 phantom function enable ? rw. hardwired to 0b 8 extended tag field enable ? rw. hardwired to 0b 7:5 max payload size ? rw. this field sets maximum tlp payload size for the device functions. as a receiver the device must handle tlps as large as the set value. as transmitter, the device must not generate tlps exceeding the set value.the max pa yload size supported in the device capabilities register indicates permissible values that can be programmed. default value is 000b(128 bytes) 4 enable relaxed ordering ? if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request reporting enable ? rw. enable error report. 2 fatal error reporting enable ? rw. enable error report. 1 non-fatal error reporting enable ? rw. enable error report. 0 correctable error reporting enable ? rw. enable error report. bit description 15:6 reserved. 5 transaction pending ? ro. indicates whether intel ? 6321esb i/o controller hub lan has any transaction pending. 4 aux power detected ? ro. hardwired to ?1?
intel ? 631xesb/632xesb i/o controller hub datasheet 817 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.38 pci express_link_cap ? pci express* link capability register (bn:f0/f1) offset address: ec?efh attribute: ro, r/w default value: see description size: 16 bits 25.1.39 pci express_link_cont ? pci express* link control register (bn:f0/f1) offset address: f0?f1h attribute: r/w default value: 0000h size: 16 bits 3 unsupported request detected ? r/wc. indicates that intel ? 6321esb i/o controller hub lan received an unsupported request. intel ? 6321esb i/o controller hub lan can?t distinguish which function causes the error. 2 fatal error detected ? r/wc. indicates status of fatal error detection. 1 non-fatal error detected ? r/wc. indicates status of non-fatal error detection. 0 correctable error detected ? r/wc. indicates status of correctable error detection. bit description bit description 31:24 port number ? ro. the pci express* port number for the given pci express link. field is set in the link training phase. default to 0x0. 23:18 reserved. 17:15 l1 exit latency - indicates the exit latency from l1 to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h. default to 110b (32-64us). 14:12 l0s exit latency -l0s is not supported by intel ? 6321esb i/o controller hub lan. 11:10 active state link pm support ? ro. indicates the level of active state power management supported in intel ? 6321esb i/o controller hub lan.this field is loaded from the eeprom pc i express init configuration 3 word 1ah. intel ? 6321esb i/o controller hub lan does not support l1 and l0s, hence the encoding should be 00b 9:4 max link width ? ro. indicates the max link width. intel ? 6321esb i/o controller hub lan controller can support by 4-link width. the field is loaded from the eeprom pci express init configuration 3 word 1ah with a default value of 4 lanes. default to 00100b 3:0 max link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b bit description 15:8 reserved. 7 extended synch ? rw. this bit forces extra ts2 transmission at recovery from l1 prior to l0. 6 common clock configuration ? rw. when set indicates that intel ? 6321esb i/o controller hub and the component at the other end of the link are operating with a common reference clock. a value of 0 indicates that they operating with an asynchronous clock. this parameter affects the l1 exit latency. 5 retrain clock ? ro. not applicable for endpoint devices, hardwired to 0. 4 link disable ? ro. not applicable for endpoint devices, hardwired to 0.
818 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.40 pci express_link_status ? pci express* link status register (bn:f0/f1) offset address: f2?f3h attribute: r/w default value: 1041h size: 16 bits 25.1.41 crid implementation as part of the intel ? 6321esb i/o controller hub lan controller development, the crid mechanism is implemented. this mechanism allows for the bios to change the revision id of the chipset components to achieve compatibility to a given sw image. the mechanism consist of a write once by the bios of a key into the revid register that will fix the revision id returned by the different pci express functions. 25.1.41.1 assumptions and guidelines ? as each pci express function in intel ? 6321esb i/o controller hub lan controller can be disabled, we need a mechanism that is independent of which function is enabled. ? in order to keep flexibility, the cr id values will be stored in eprom. 25.1.41.2 implementation after pci express reset 3 crid values will be read from the eprom and stored in registers. the default values of these registers if no eprom is present are equal to the revid. a write of a key to revid (8 lower bits of address 0x8 in pci express configuration space) of any of the function will lock the key value into a register common to all functions. after this write, the revid will become read only until the next pci express reset or power up reset. 3 read completion boundary ? rw. 2 reserved. 1:0 active state link pm control ? r/w. this field controls the active state pm supported on the link. link pm functionality is determined by the lowest common denominator of all functions. defined encodings are: 00b aspm disabled 01b l0s entry supported 10b reserved 11b l0s and l1 supported intel ? 6321esb i/o controller hub lan does not support l0s and l1 aspm bit description bit description 15:13 reserved. 12 slot clock configuration ? when set, it indicates it uses the physical reference clock that the platform provides on the connector. this bit value is loaded from eeprom word 1ah. default is 1. 11 link training ? ro. indicates that link training is in progress. 10 link training error ? ro. hardwire to 0 9:4 negotiated link width ? ro. indicates the negotiated width of the link. 3:0 link speed ? ro. indicates the negotiated link speed. 0001b is the only defined speed which is 2.5 gbps.
intel ? 631xesb/632xesb i/o controller hub datasheet 819 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) this key value will fix which value is read back when the revid register of any function is accessed according to the following table: 25.1.41.3 revid register description in any of intel ? 6321esb i/o controller hub lan controller?s pci express config space: 25.1.42 pci express* extended configuration registers pci express extended configuration register is allocated using a linked list of optional or required pci express extended capabilities following a format resembling pci capability structures. the first pci express extended capability is located at offset 0x100 in the device configuration space. the first dword of the capability structure identifies the capability/version and points to the next capability. 25.1.42.1 pci express extended ca pability identification register 25.1.42.2 uncorrectable error status the uncorrectable error status register reports error status of individual uncorrectable error sources on a pci express device. an individual error status bit that is set to ?1? indicates that a particular error occurred; software may clear an error status by writing a 1 to the respective bit. table 25-3. revid register key crid # 0x1d crid #1 0x2d crid #2 0x3d crid #3 other revid offset byte 3 byte 2 byte 1 byte 0 0xb - 0x8 class code (ro) default according to function revision id (write once, after that ro) values from eprom. bit description 31:20 next capability pointer ? ro. next pci express extended capability pointer 19:16 version number ? ro. pci express advanced error re porting extended capability version number 15:0 extended capability id ? ro. pci express extended capability id indicating advanced error reporting capability bit description 31:21 reserved 20 unsupported request error status ? r/wcs 19 ecrc error status (optional) ? r/wcs 18 malformed tlp status ? r/wcs 17 receiver overflow status (optional) ? r/wcs 16 unexpected completion status ? r/wcs 15 completer abort status (optional) ? r/wcs
820 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.42.3 uncorrectable error mask the uncorrectable error mask register controls reporting of individual uncorrectable errors by device to the host bridge via a pci express error message. a masked error (respective bit set in mask register) is not reported to the host bridge by an individual device. there is a mask bit per bit of the uncorrectable error status register. 25.1.42.4 uncorrectable error severity the uncorrectable error severity register controls whether an individual uncorrectable error is reported as a fatal error. an uncorrectable error is reported as fatal when the corresponding error bit in the severity register is set. if the bit is cleared, the corresponding error is considered fatal. if the bit is set, the corresponding error is considered non-fatal. 14 completion timeout status ? r/wcs 13 flow control protocol error status (optional) ? r/wcs 12 poisoned tlp status ? r/wcs 11:5 reserved 4 data link protocol error status ? r/wcs 3:1 reserved 0 training error status (optional) ? r/wcs bit description bit description 31:21 reserved 20 unsupported request error status ? r/ws 19 ecrc error status (optional) ? r/ws 18 malformed tlp status ? r/ws 17 receiver overflow status (optional) ? r/ws 16 unexpected completion status ? r/ws 15 completer abort status (optional) ? r/ws 14 completion timeout status ? r/ws 13 flow control protocol error status (optional) ? r/ws 12 poisoned tlp status ? r/ws 11:5 reserved 4 data link protocol error status ? r/ws 3:1 reserved 0 training error status (optional) ? r/ws bit description 31:21 reserved 20 unsupported request error status ? r/ws 19 ecrc error status (optional) ? r/ws 18 malformed tlp status ? r/ws 17 receiver overflow status (optional) ? r/ws 16 unexpected completion status ? r/ws
intel ? 631xesb/632xesb i/o controller hub datasheet 821 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.42.5 correctable error status the correctable error status register reports error status of individual correctable error sources on a pci express device. when an individual error status bit is set to ?1? it indicates that a particular error occurred; software may clear an error status by writing a 1 to the respective bit. 25.1.42.6 correctable error mask the correctable error mask register controls reporting of individual correctable errors by device to the host bridge via a pci express error message. a masked error (respective bit set in mask register) is not reported to the host bridge by an individual device. there is a mask bit per bit in the correctable error status register. 15 completer abort status (optional) ? r/ws 14 completion timeout status ? r/ws 13 flow control protocol error status (optional) ? r/ws 12 poisoned tlp status ? r/ws 11:5 reserved 4 data link protocol error status ? r/ws 3:1 reserved 0 training error status (optional) ? r/ws bit description bit description 31:13 reserved 12 replay timer timeout status ? r/wcs 11:9 reserved 8 replay_num rollover status ? r/wcs 7 bad dllp status ? r/wcs 6 bad tlp status ? r/wcs 5:1 reserved 0 receiver error status (optional) ? r/wcs bit description 31:13 reserved 12 replay timer timeout status ? r/wcs 11:9 reserved 8 replay_num rollover status ? r/wcs 7 bad dllp status ? r/wcs 6 bad tlp status ? r/wcs 5:1 reserved 0 receiver error status (optional) ? r/wcs
822 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.1.42.7 first error pointer the first error pointer is a read-only register that identifies the bit position of the first uncorrectable error reported in the uncorrectable error status register. 25.1.42.8 header log the header log register captures the header for the transaction that generated an error. this register is 16 bytes. 25.2 ide redirection controller configuration registers (bn:f2) bit description 31:4 reserved 3:0 vector pointing to the first recorded error in the uncorrectable error status register. bit description 127:0 header of the packet in error (tlp or dllp). table 25-4. ide pci configuration register address map bn:f2) (sheet 1 of 2) offset mnemonic register name default type mandatory pci configuration registers 00?01h vid vendor identification 8086h ro 02?03h did device identification 1084h ro 04?05h pcicmd pci command 0000h ro, rw 06?07h pcists pci status 0010h ro, r/wc 08h rid revision identification see register desc. ro 09h pi programming interface 85h ro 0ah scc sub class code 01h ro 0bh bcc base class code 01h ro 0ch cls cache line size 10h r/w 0dh pmlt primary master latency timer 00h r/w 0eh headtyp header type 00h ro bar registers for 32-bit addressing modes 10?13h ide_p_command_blk_io_base ide primary command block i/o?mapped base address 00000001h r/w, ro 14?17h ide_p_control_blk_io_base ide primary control block i/o?mapped base address 00000001h r/w, ro 18?1bh ide_s_command_blk_io_base ide secondary command block i/o?mapped base address 00000001h r/w, ro 1c?1fh ide_s_control_blk_io_base ide secondary control block i/o?mapped base address 00000001h r/w, ro 20?23h ide_bus_master_io_base ide bus master i/o?mapped base address 00000001h r/w, ro
intel ? 631xesb/632xesb i/o controller hub datasheet 823 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.1 vid ? vendor identification register (bn:f0/f1) offset address: 00?01h attribute: ro default value: 8086h size: 16 bits 2c?2dh svid subsystem vendor identification 8086h ro 2e?2fh sid subsystem identification 0000h ro 30-33h csr_exp_rom_base csr expansion rom base address 00000000h r/w 34h cap_ptr capabilities pointer c8h ro 3ch int_ln interrupt line 00h r/w 3dh int_pn interrupt pin 04h ro 3eh min_gnt minimum grant 00h ro 3fh max_lat maximum latency 00h ro pci power management registers c8h cap_id capability id 01h ro c9h nxt_ptr next item pointer d0h ro ca?cbh pm_cap power management capabilities see bit description ro cc?cdh pmcsr power management control/status 0000h r/w, ro, r/ wc cf pcidata pci power management data 00h ro message signaled interrupt configuration registers d0h msi_cap_id msi capability id 05h ro d1h msi_nxt_ptr msi t next item pointer e0h ro d2-d3 msi_mcr msi control register 0080 r/w d4-d7h msi_mar_low msi message low address 00000000h r/w d8-db msi_mar_high msi message high address 00000000h r/w dc-dd msi_mdr message data register 0000 r/w pci express* configuration registers e0h pci express_cap_id pci expre ss capability identification register 10h ro e1h pci express_nxt_ptr pci express next item pointer 00h ro e2-e3 pci express_cap pci express capability 0011 ro e4-e7h pci express_dev_cap pci express device capability 00000cc1h ro e8-e9 pci express_dev_cont pci express device control 2810h r/w ea-eb pci express_dev_status pci express device status 0000h ro ec-ef pci express_link_cap pci express link capability see register desc. ro f0-f1 pci express_link_cont pci express link control 0000h r/w f2-f3 pci express_link_status pci express link status 1011h ro table 25-4. ide pci configuration register address map bn:f2) (sheet 2 of 2) offset mnemonic register name default type bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel.
824 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.2 did ? device identification register (bn:f2) offset address: 02?03h attribute: ro default value: 1084h size: 16 bits 25.2.3 pcicmd ? pci command register (bn:f2) offset address: 04?05h attribute: ro, r/w default value: 0000h size: 16 bits bit description 15:0 device id - ro. this is a 16-bit value assigned to the intel ? 6321esb i/o controller hub integrated ide redirection controller. if word 0ah bit 0 is set in the eeprom, the device id is loaded from the eeprom, word 102h/42h after the hardware reset. if not set, the default value is 1084h. bit description 15:11 reserved 10 interrupt disable ? r/w. 0 = enable. 1 = disables ide redirection controller to assert its intd signal. the interrupt disable register bit is a read-write bit that controls the ability of a pci express device to generate a legacy interrupt message. when set, devices are prevented from generating legacy interrupt messages. 9 fast back to back enable (fbe) ? ro. hardwired to 0. the integrated ide redirection controller will not run fast back-to-back pci cycles. 8 serr# enable (serr_en) ? r/w. 0 = disable. 1 = enable. allow serr# to be asserted. 7 wait cycle enable (wcc) ? ro. hardwired to 0. not implemented. 6 parity error response (per) ? r/w. 0 = the ide redirection controller will ignore pci parity errors. 1 = the ide redirection controller controller will take normal action when a pci parity error is detected and will enable generation of parity on esi. 5 palette snoop enable (pse) ? ro. hardwired to 0. not implemented. 4 memory write and invalidate enable (mwie) ? ro. hardwired to 0. not implemented. 3 special cycle monitoring (scm) ? ro. hardwired to 0. the ide redirection controller ignores special cycles. 2 bus master enable (bme) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated ide redirection controller may function as a pci bus master. 1 memory space enable (mse) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated ide redirection controller will respond to the memory space accesses. 0 i/o space enable (iose) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated ide redirection controller will respond to the i/o space accesses.
intel ? 631xesb/632xesb i/o controller hub datasheet 825 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.4 pcists ? pci status register (bn:f2) offset address: 06?07h attribute: ro, r/wc default value: 0010h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. bit description 15 detected parity error (dpe) ? r/wc. 0 = parity error not detected. 1 = the intel ? 6321esb i/o controller hub?s integrated ide redirection controller has detected a parity error on the pci bus (will be set even if parity error response is disabled in the pci command register). 14 signaled system error (sse) ? r/wc. 0 = integrated ide redirection controller has not asserted serr# 1 = the intel ? 6321esb i/o controller hub?s integrated ide redirection controller has asserted serr#. serr# can be routed to cause nmi, smi#, or interrupt. 13 master abort status ( rma) ? r/wc. 0 = master abort not generated 1 = the intel ? 6321esb i/o controller hub?s integrated ide redirection controller (as a pci master) has generated a master abort. 12 received target abort (rta) ? r/wc. 0 = target abort not received. 1 = the intel ? 6321esb i/o controller hub?s integrated ide redirection controller (as a pci master) has received a target abort. 11 signaled target abort (sta) ? r/wc. 0 = target abort not signaled. 1 = the intel ? 6321esb i/o controller hub?s integrated ide redirection controller (as a pci master) has signaled a target abort. 10:9 devsel timing ? ro. hardwired to 0. not implemented. 8 data parity error detected (dped) ? r/wc. 0 = parity error not detected (conditions below are not met). 1 = all of the following three conditions have been met: 1. the ide redirection controller is acting as bus master 2. the ide redirection controller has asserted perr# (for reads) or detected perr# asserted (for writes) 3. the parity error response bit in the ide redirection controller?s pci command register is set. 7 fast back to back capable (fb2bc ) ? ro. hardwired to 0. not implemented. 6 reserved. 5 66 mhz capable (66mhz_cap) ? ro. hardwired to 0. not implemented. 4 capabilities list (cap_list) ? ro. indicates that a device implements extended capabilities. 0 = the eeprom indicates that the integrated ide redirection controller does not support extended capabilities. 1 = the eeprom indicates that the integrated ide redirection controller supports pci power management, message signaled interrupts, and the pci express extensions. 3 interrupt status (ints) ? ro. this bit indicates that an interr upt is pending. it is independent from the state of the interrupt enable bit in the command register. 2:0 reserved
826 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.5 rid ? revision identification register (bn:f2) offset address: 08h attribute: ro default value: see bit description size: 8 bits 25.2.6 pi ? programming interface register (bn:f2) offset address: 09h attribute: ro default value: 85h size: 8 bits 25.2.7 scc ? sub class code register (bn:f2) offset address: 0ah attribute: ro default value: 01h size: 8 bits 25.2.8 bcc ? base class code register (bn:f2) offset address: 0bh attribute: ro default value: 01h size: 8 bits 25.2.9 cls ? cache line size register (bn:f2) offset address: 0ch attribute: r/w default value: see register desc. size: 8 bits 25.2.10 pmlt ? primary master latency timer register (bn:f2) offset address: 0dh attribute: r/w default value: 00h size: 8 bits bit description 7:0 revision id (rid) ? ro. the default revision id of this device is 00h. the value of the rev id is a logic or between the default value and the value in the eeprom word 1eh. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register. bit description 7:0 programming interface(pi) ? ro. this 8-bit value specifies the class code as the programming i/ f class. bit description 7:0 sub class code (scc) ? ro. this 8-bit value specifies the sub class of the device as an ide redirection controller. bit description 7:0 base class code (bcc) ? ro. this 8-bit value specifies the base class of the device as a mass storage controller. bit description 7:0 cache line size(cls) ? r/w. implement for legacy compatibility purposes but has no impact on any pci express device functionality. loaded from eeprom 1ah. bit description 7:0 not used. hardwired to zero
intel ? 631xesb/632xesb i/o controller hub datasheet 827 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.11 headtyp ? header type register (bn:f2) offset address: 0eh attribute: ro default value: 00h, 80h size: 8 bits 25.2.12 base address registers (bn:f2) ide function has no 64-bit addressing since ide has only io mapping window. bar32 bit in the eeprom set to 1 (word 0ah) 32-bit addressing mode 25.2.12.1 ide_p_command_blk_io_base ? ide primary command block i/o- mapped base address register (bn:f2) offset address: 10?13h attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated ide redirection controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the lan controller?s csr registers. 25.2.12.2 ide_p_control_blk_io_base ? ide primary control block i/ o-mapped base address register (bn:f2) offset address: 14?17h attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated ide redirection controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the lan controller?s csr registers. bit description 7 multi-function device (mfd) ? ro. hardwired to 0 to indicate a single function device, that is, if only a single ide redirection function is active. 1 for multiple function 6:0 header type (htype) ? ro. this 7-bit field identifies the header layout of the configuration space as an ide redirection controller. bit description 31:3 base address (io_addr) ? r/w. this field provides 8 bytes of i/o-mapped address space for the ide i/o space 2:1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space. bit description 31:2 base address (io_addr) ? r/w. this field provides 4 bytes of i/o-mapped address space for the ide i/o space 1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space.
828 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.12.3 ide_s_command_blk_io_base ? ide secondary command block i/ o-mapped base address register (bn:f2) offset address: 18?1bh attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated ide redirection controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the lan controller?s csr registers. 25.2.12.4 ide_s_control_blk_io_base ? ide secondary control block i/o- mapped base address register (bn:f2) offset address: 1c?1fh attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated ide redirection controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the lan controller?s csr registers. 25.2.12.5 ide_bus_master_io_base ? ide bus master i/o-mapped base address register (bn:f2) offset address: 20-23h attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated ide redirection controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the lan controller?s csr registers. bit description 31:3 base address (io_addr) ? r/w. this field provides 8 bytes of i/o-mapped address space for the ide i/o space 2:1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space. bit description 31:2 base address (io_addr) ? r/w. this field provides 4 bytes of i/o-mapped address space for the ide i/o space 1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/ o space. bit description 31:4 base address (io_addr) ? r/w. this field provides 16 bytes of i/o-mapped address space for the ide i/o space. 3:1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space.
intel ? 631xesb/632xesb i/o controller hub datasheet 829 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.13 svid ? subsystem vendor identification(bn:f2) offset address: 2c?2d attribute: ro default value: 8086h size: 16 bits 25.2.14 sid ? subsystem identification (bn:f2) offset address: 2e?2fh attribute: ro default value: 0000h size: 16 bits 25.2.15 csr_exp_rom_base ? csr expansion rom base address offset address: 30?33h attribute: r/w default value: 00000000h size: 32 bits this register is used to define the address and size information for boot-time access to the optional flash memory. only the lan 0/lan 1 and ide functions may have this window. it is enabled by the eeprom words 24h, 14h and 1ch for lan 0, lan 1 and ide functions respectively. this register returns zero value for functions without expansion rom window. 25.2.16 cap_ptr ? capabilities pointer (bn:f2) offset address: 34h attribute: ro default value: c8h size: 8 bits bit description 15:0 subsystem vendor id (svid) ? ro. this value may be loaded automatically from the eeprom address 0ch upon power up or reset if the eeprom is present (and properly programmed) and if word 0ah bit 1 is set. a value of 0x8086 is default for this field upon power up if the eeprom does not respond or is not programmed. bit description 15:0 subsystem id (sid) ? ro. this value may be loaded automatically from the eeprom address 105h/45h upon power up with a default value of 0x0000 if the eeprom is present (and properly programmed) and if word 0ah bit 1 is set. bit description 31:11 base address (exp_rom_addr) ? r/w. hardwired to 0 depending on the memory mapping window size. the lan expansion rom spaces can be either 64k, up to 8mb in power of 2. mapping window size is set by the eeprom word 0fh. 10:1 reserved 0 expansion rom access enable (exp_rom_en) ? r/w. 1 enables expansion rom access. 0 disables expansion rom access. bit description 7:0 capabilities pointer (cap_ptr) ? ro. hardwired to c8h to indicate the offset within configuration space for the location of the power management registers.
830 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.17 int_ln ? interrupt line register (bn:f2) offset address: 3ch attribute: r/w default value: 00h size: 8 bits 25.2.18 int_pn ? interrupt pin register (bn:f2) offset address: 3dh attribute: ro default value: 04h size: 8 bits 25.2.19 min_gnt ? minimum grant register (bn:f2) offset address: 3eh attribute: ro default value: 00h size: 8 bits 25.2.20 max_lat ? maximum latency register (bn:f2) offset address: 3fh attribute: ro default value: 00h size: 8 bits 25.2.21 cap_id ? capability identification register (bn:f2) offset address: c8h attribute: ro default value: 01h size: 8 bits 25.2.22 nxt_ptr ? next item pointer (bn:f2) offset address: c9h attribute: ro default value: d0h size: 8 bits bit description 7:0 interrupt line (int_ln) ? r/w. this field identifies the system interrupt line to which the lan controller?s pci interrupt request pin (as define d in the interrupt pin register) is routed. bit description 7:0 interrupt pin (int_pn) ? ro. ide redirection controller - a value of 0x1 / 0x2 / 0x3 / 0x4 indicates that this function implements legacy interrupt on inta / intb / intc / intd respectively. loaded from eeprom word 21h. bit description 7:0 minimum grant (min_gnt) ? ro. not used, hardwired to 00h. bit description 7:0 maximum latency (max_lat) ? ro. not used, hardwired to 00h. bit description 7:0 capability id (cap_id) ? ro. hardwired to 01h to indicate that the intel ? 6321esb i/o controller hub?s integrated ide redirection controller supports pci power management. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to d0h to indicate that power management is the last item in the capabilities list.
intel ? 631xesb/632xesb i/o controller hub datasheet 831 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.23 pm_cap ? power management capabilities (bn:f2) offset address: ca?cbh attribute: ro default value: see bit description size: 16 bits 25.2.24 pmcsr ? power management control/status register bn:f2) offset address: cc?cdh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits bit description 15:11 pme support (pme_sup) ? ro. this 5-bit field indicates the power states in which the ide redirection controller may assert pme#. the default value depends on eeprom word 0ah. 00000b = no pme at all states. 01001b = pme at d0 and d3 hot 11001b = pme at d0, d3 hot and d3 cold 10:9 hardwired to '0'. 8:6 auxiliary current (aux_cur) ? ro. hardwired to 000b to indicate that the ide redirection controller implements the data registers. the auxiliary power consumption is the same as the current consumption reported in the d3 state in the data register. 5 device specific initialization (dsi) ? ro. hardwired to 1 to indicate that special initialization of this function is required (beyond the standard pci configuration header) before the generic class device driver is able to use it. dsi is required for the ide redirection controller after d3-to-d0 reset. 4 reserved 3 pme clock (pme_clk) ? ro. hardwired to 0 to indicate that the ide redirection controller does not require a clock to generate a power management event. 2:0 version (ver) ? ro. hardwired to 010b to indicate that the ide redirection controller complies with of the pci power management specification, revision 1.1. bit description 15 pme status (pme_stat) ? r/wc. 0 = software clears this bit by writing a 1 to it. this also deasserts the pme# signal and clears the pme status bit in the power management driver register. when the pme# signal is enabled, the pme# signal reflects the state of the pme status bit. 1 = set upon occurrence of a wakeup event, independent of the state of the pme enable bit. 14:13 data scale (dscale) ? ro. this field indicates the data register scaling factor. it equals 10b for all supported registers: 0,3,4,7 and 8, as selected by the ?data select? field. 12:9 data select (dsel) ? r/w. this field is used to select which data is reported through the data register and data scale field. 8 pme enable (pme_en) ? r/w. this bit enables the intel ? 6321esb i/o controller hub?s integrated ide redirection controller to assert pme#. 0 = the device will not assert pme#. 1 = enable pme# assertion when pme status is set. 7:2 reserved 1:0 power state (pwr_st) ? r/w. this 2-bit field is used to determine the current power state of the integrated ide redirection controller, and to put it into a new power state. the definition of the field values is as follows: 00 = d0 01/10 = reserved 11 = d3
832 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.25 pcidata ? pci power management data register (bn:f2) offset address: cfh attribute: ro default value: 00h size: 8 bits this optional register is used to report power consumption and heat dissipation. reported register is controlled by the data_select field in the pmcsr, and the power scale is reported in the data_scale field in the pmcsr. the data of this field is loaded from the eeprom if pm is enabled in the eeprom or with a default value of 0x00 otherwise. the values for intel ? 6321esb i/o controller hub ide redirection controller functions is shown in ta b l e 2 5 - 5 . 25.2.26 msi_cap_id ? capability identification register (bn:f2) offset address: d0h attribute: ro default value: 05h size: 8 bits 25.2.27 msi_nxt_ptr ? next item pointer (bn:f2) offset address: d1h attribute: ro default value: e0h size: 8 bits 25.2.28 msi_mcr ? message control register (bn:f2) offset address: d2?d3h attribute: ro default value: 0080 size: 16 bits bit description 7:0 power management data (pwr_mgt) ? ro. state dependent power consumption and heat dissipation data. table 25-5. data register structure function d0 (consume/ dissipate) d3 (consume/ dissipate) common data_scale data_select (0x0 / 0x4) (0x3 / 0x7) (0x8) ide redirection eep addr 100/40h eep addr 101/41h 0x00 10b bit description 7:0 capability id (cap_id) ? ro. hardwired to 05h to indicate that the linked list item as being the message signaled interrupt registers. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to e0h to indicate that pci express capability is the next item in the capability list. bit description 15:11 reserved. 7 64 support (64_sup) ? ro. hardwired to 1 to indicate that the ide redirection controller is capable of generating 64 bit message addresses.
intel ? 631xesb/632xesb i/o controller hub datasheet 833 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.29 msi_mar_low ? message address low register (bn:f2) offset address: d4?d7h attribute: ro, r/w, r/wc default value: 00000000h size: 32 bits 25.2.30 msi_mar_high ? message a ddress high register (bn:f2) offset address: d8?dbh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 25.2.31 msi_mdr ? message data register (bn:f2) offset address: dc?ddh attribute: r/w default value: 0000h size: 16 bits 25.2.32 pci express_cap_id ? pci express* capability identification register (bn:f2) offset address: e0h attribute: ro default value: 10h size: 8 bits 6:4 multiple message enable(mm_enable) ? ro. hardwired to 000b to indicate that the ide redirection controller supports single message per function. 3:1 multiple message capable(mm_cap) ? ro. hardwired to 000b to indicate that the ide redirection controller capable of single requested message per function. 0 msi enable(msi_enable) ? r/w. if 1, the ide redirection controller will generate msi for interrupt assertion instead of intx signaling. bit description bit description 7:2 message address low(msg_addr_low) ? r/w. written by the system to indicate the lower 32 bits of the address to use for the msi memory write transaction. the lower two bits will always return 0 regardless of the write operation. bit description 31:0 message address high(msg_addr_high) ? r/w. this field contains the upper 32 bits of the address to use for the msi memory write transaction. bit description 15:0 message data(msg_data) ? r/w. written by the system to indicate the lower 16 bits of the data written in the msi memory write dword transaction. the upper 16 bits of the transaction are written as 0 bit description 7:0 capability id (cap_id) ? ro. hardwired to 10h to indicate that the linked list item as being the pci express capability registers.
834 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.33 pci express_nxt_ptr ? pci express* next item pointer (bn:f2) offset address: e1h attribute: ro default value: 00h size: 8 bits 25.2.34 pci express_cap ? pci express* capability register (bn:f2) offset address: e2?e3h attribute: ro default value: 0011 size: 16 bits 25.2.35 pci express_dev_cap ? pci express* device capability register (bn:f2) offset address: e4?e7h attribute: ro, r/w, r/wc default value: 00000cc1h size: 32 bits bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to 00h to indicate that it is the last item in the capability linked list. bit description 15:14 reserved. 13:9 interrupt message number (int_msg_num) ? ro. multiple msi per function is not supported. hardwired to 00000b 8 slot implemented ? ro. slot option not implemented hardwired to 0. 7:4 device/port type ? ro. indicates the type of pci express functions. the value of for ide redirection function is loaded from the eeprom word 19h bit 13. 3:0 capability version(cap_version) ? ro. indicates the pci express capability structure version number 0001b. bit description 31:28 reserved. 27:26 slot power limit scale ? ro. used in upstream port only. hardwired to 00b. 25:18 slot power limit value ? ro. used in upstream port only. hardwired to 00b 17:15 reserved. 14 power indicator present ? ro. hardwired to 0b 13 attention indicator present ? ro. hardwired to 0b 12 attention button present ? ro. hardwired to 0b 11:9 endpoint l1 acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan core can withstand due to the transition from l1 state to the l0 state. all functions share the same value loaded from the eeprom pci express* init configuration 1 word 18h 8:6 endpoint l0s acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan core can withstand due to the transition from l0s state to the l0 state. all functions share the same value loaded from the eeprom pci express init configuration 1 word 18h.
intel ? 631xesb/632xesb i/o controller hub datasheet 835 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.36 pci express_dev_cont ? pci express* device control register (bn:f2) offset address: e8?e9h attribute: ro, r/w default value: 2810h size: 16 bits 25.2.37 pci express_dev_status ? pci express* device status register (bn:f2) offset address: ea?ebh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 5 extended tag field supported ? ro. max supported size of the tag field. intel ? 6321esb i/o controller hub supported 5-bit tag field for all functions. 4:3 phantom function supported ? ro. hardwired to 00b. not supported. 2:0 max payload size supported ? ro. this field indicates the maximum payload that the device can support for tlps. it is loaded from the eeprom pci express init configuration 3 word 1ah bit 8 with a default value of 256b. bit description bit description 15 reserved. 14:12 max read request size - this field sets maximum read request size for the device as a requester. the default value is 010b (512b) for the lan devices. 11 enable no snoop ? r/w. snoop is gated by nonsnoop bits in the gcr register in the csr space. default is 1b 10 auxiliary power pm enable - when set enables the device to draw aux power independent of pme aux power. intel ? 6321esb i/o controller hub lan core is a multi function device, therefore allowed to draw aux power if at least one of the functions has this bit sets 9 phantom function enable ? rw. hardwired to 0b 8 extended tag field enable ? rw. hardwired to 0b 7:5 max payload size ? rw. this field sets maximum tlp payload size for the device functions. as a receiver the device must handle tlps as large as the set value. as transmitter, the device must not generate tlps exceeding the set value.the max payload size supported in the device capabilities register indicates permissible values that can be programmed. default value is 000b(128 bytes) 4 enable relaxed ordering ? if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request reporting enable ? rw. enable error report. 2 fatal error reporting enable ? rw. enable error report. 1 non-fatal error reporting enable ? rw. enable error report. 0 correctable error reporting enable ? rw. enable error report. bit description 15:6 reserved. 5 transaction pending ? ro. indicates whether intel ? 6321esb i/o controller hub lan has any transaction pending. (transactions include comple tions for any outstanding non-posted request for all used traffic classes). 4 aux power detected ? ro. if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request detected ? r/wc. indicates that intel ? 6321esb i/o controller hub lan received an unsupported request. intel ? 6321esb i/o controller hub lan can?t distinguish which function causes the error.
836 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.38 pci express_link_cap ? pci express* link capability register (bn:f2) offset address: ec?efh attribute: ro, r/w default value: see description size: 16 bits 25.2.39 pci express_link_cont ? pci express* link control register (bn:f2) offset address: f0?f1h attribute: r/w default value: 0000h size: 16 bits 2 fatal error detected ? r/wc. enable error report. 1 non-fatal error detected ? r/wc. enable error report. 0 correctable error detected ? r/wc. enable error report. bit description bit description 31:24 port number ? ro. the pci express* port number for the given pci express link. field is set in the link training phase. default to 0x0. 23:18 reserved. 17:15 l1 exit latency - indicates the exit latency from l1 to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h. default to 110b (32-64us). 14:12 l0s exit latency - indicates the exit latency from l0s to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h (two values for common pci express clock or separate pci express clock). default to 001b (64-128ns). 11:10 active state link pm support ? ro. indicates the level of active state power management supported in intel ? 6321esb i/o controller hub lan core. defined encodings are: 00breserved 01bl0s entry supported 10breserved 11bl0s and l1 supported this field is loaded from the eeprom pci express init configuration 3 word 1ah.default to 11b 9:4 max link width ? ro. indicates the max link width. intel ? 6321esb i/o controller hub lan controller can support by 1 and by 4-link width. the field is loaded from the eeprom pci express init configuration 3 word 1ah with a default value of 4 lanes. default to 00100b. 3:0 max link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b bit description 15:8 reserved. 7 extended synch ? rw. this bit forces extended tx of fts ordered set in fts and extra ts2 at exit from l1 prior to enter l0. 6 common clock configuration ? rw. when set indicates that intel ? 6321esb i/o controller hub and the component at the other end of the link are operating with a common reference clock. a value of 0 indicates that they operating with an asynchronous clock. this parameter affects the l0s exit latencies. 5 retrain clock ? ro. not applicable for endpoint devices, hardwired to 0. 4 link disable ? ro. not applicable for endpoint devices, hardwired to 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 837 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.2.40 pci express_link_status ? pci express* link status register (bn:f2) offset address: f2?f3h attribute: r/w default value: 1011h size: 16 bits 25.3 serial port redirection controller configuration registers (bn:f3) 3 read completion boundary ? rw. 2 reserved. 1:0 active state link pm control ? r/w. this field controls the active state pm supported on the link. link pm functionality is determined by the lowest common denominator of all functions. defined encodings are: 00b pm disabled 01b l0s entry supported 10b reserved 11b l0s and l1 supported bit description bit description 15:13 reserved. 12 slot clock configuration ? when set, it indicates it uses the physical reference clock that the platform provides on the connector. this bit must be cleared uses an independent clock. default to be 1b. 11 link training ? ro. indicates that link training is in progress. 10 link training error ? ro. indicates that link training error has occurred. 9:4 negotiated link width ? ro. indicates the negotiated width of the link. 000001b = x1 000100b = x4 3:0 link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b table 25-6. serial pci configuration register address map bn:f3) (sheet 1 of 3) offset mnemonic register name default type mandatory pci configuration registers 00?01h vid vendor identification 8086h ro 02?03h did device identification 1085h ro 04?05h pcicmd pci command 0000h ro, rw 06?07h pcists pci status 0010h ro, r/wc 08h rid revision identification see register desc. ro 09h pi program interface 02h ro 0ah scc sub class code 00h ro 0bh bcc base class code 07 ro 0ch cls cache line size 10h r/w 0dh pmlt primary master latency timer 00h r/w 0eh headtyp header type 00h ro
838 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) bar registers for 64-bit addressing modes 10?13h ser_io_base serial i/o?mapped base address 00000001h r/w, ro 14?17h ser_mem_base_low serial memory?mapped base low address 00000004h r/w, ro 18?1bh ser_mem_base_high serial memory?mapped base high address 00000000h r/w, ro bar registers for 32-bit addressing modes 10?13h ser_io_base serial i/o?mapped base address 00000001h r/w, ro 14?17h ser_mem_base serial memory?mapped base address 00000000h r/w, ro 2c?2dh svid subsystem vendor identification 8086h ro 2e?2fh sid subsystem identification 0000h ro 34h cap_ptr capabilities pointer c8h ro 3ch int_ln interrupt line 00h r/w 3dh int_pn interrupt pin 03h ro 3eh min_gnt minimum grant 00h ro 3fh max_lat maximum latency 00h ro pci power management registers c8h cap_id capability id 01h ro c9h nxt_ptr next item pointer d0h ro ca?cbh pm_cap power management capabilities see bit description ro cc?cdh pmcsr power management control/ status 0000h r/w, ro, r/ wc cf pcidata pci power management data 00h ro message signaled interrupt configuration registers d0h msi_cap_id msi capability id 05h ro d1h msi_nxt_ptr msi t next item pointer e0h ro d2-d3 msi_mcr msi control register 0080 r/w d4-d7h msi_mar_low msi message low address 00000000h r/w d8-db msi_mar_high msi message high address 00000000h r/w dc-dd msi_mdr message data register 0000 r/w pci express* configuration registers e0h pci express_cap_id pci express capability identification register 10h ro e1h pci express_nxt_ptr pci express next item pointer 00h ro e2-e3 pci express_cap pci express capability 0011 ro e4-e7h pci express_dev_cap pci express device capability 00000cc1h ro e8-e9 pci express_dev_cont pci express device control 2810h r/w ea-eb pci express_dev_status pci express device status 0000h ro table 25-6. serial pci configuration register address map bn:f3) (sheet 2 of 3) offset mnemonic register name default type
intel ? 631xesb/632xesb i/o controller hub datasheet 839 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.1 did ? device identification register (bn:f3) offset address: 02?03h attribute: ro default value: 1085h size: 16 bits 25.3.2 pcicmd ? pci command register (bn:f3) offset address: 04?05h attribute: ro, r/w default value: 0000h size: 16 bits ec-ef pci express_link_cap pci express link capability see description ro f0-f1 pci express_link_cont pci express link control 0000h r/w f2-f3 pci express_link_status pci express link status 1011h ro table 25-6. serial pci configuration register address map bn:f3) (sheet 3 of 3) offset mnemonic register name default type bit description 15:0 device id - ro. this is a 16-bit value assigned to the intel ? 6321esb i/o controller hub integrated serial port redirection controller. if word 0ah bit 0 is set in the eeprom, the device id is loaded from the eeprom, word 103h/43h after the hardware reset. if not set, the default value is 1085h. bit description 15:11 reserved 10 interrupt disable ? r/w. 0 = enable. 1 = disables serial port redirection controller to assert its intc signal. the interrupt disable register bit is a read-write bit that controls the ability of a pci express device to generate a legacy interrupt message. when set, devices are prevented from generating legacy interrupt messages. 9 fast back to back enable (fbe) ? ro. hardwired to 0. the integrated serial port redirection controller will not run fast back-to-back pci cycles. 8 serr# enable (serr_en) ? r/w. 0 = disable. 1 = enable. allow serr# to be asserted. 7 wait cycle control (wcc) ? ro. hardwired to 0. not implemented. 6 parity error response (per) ? r/w. 0 = the serial port redirection cont roller will ignore pci parity errors. 1 = the integrated serial port redirection controller will take normal action when a pci parity error is detected and will enable generation of parity on esi. 5 palette snoop enable (pse) ? ro. hardwired to 0. not implemented. 4 memory write and invalidate enable (mwie) ? ro. hardwired to 0. not implemented. 3 special cycle enable (sce) ? ro. hardwired to 0. the serial port redirection controller ignores special cycles.
840 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.3 pcists ? pci status register (bn:f3) offset address: 06?07h attribute: ro, r/wc default value: 0010h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. 2 bus master enable (bme) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller may function as a pci bus master. 1 memory space enable (mse) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller will respond to the memory space accesses. 0 i/o space enable (iose) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller will respond to the i/o space accesses. bit description bit description 15 detected parity error ( dpe) ? r/wc. 0 = parity error not detected. 1 = the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller has detected a parity error on the pci bus (will be set even if parity error response is disabled in the pci command register). 14 signaled system error ( sse) ? r/wc. 0 = integrated serial port redirection controller has not asserted serr# 1 = the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller has asserted serr#. serr# can be routed to cause nmi, smi#, or interrupt. 13 master abort status ( rma) ? r/wc. 0 = master abort not generated 1 = the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller (as a pci master) has generated a master abort. 12 received target abort (rta) ? r/wc. 0 = target abort not received. 1 = the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller (as a pci master) has received a target abort. 11 signaled target abort (sta) ? r/wc. 0 = target abort not signaled. 1 = the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller (as a pci master) has signaled a target abort. 10:9 devsel timing ? ro. hardwired to 0. 8 data parity error detected (dped) ? r/wc. 0 = parity error not detected (conditions below are not met). 1 = all of the following three conditions have been met: 1. the serial port redirection controller is acting as bus master 2. the serial port redirection controller has asserted perr# (for reads) or detected perr# asserted (for writes) 3. the parity error response bit in the serial port redirection controller?s pci command register is set. 7 fast back to back capable (fb2bc) ? ro. hardwired to 0. the device does not accept fast back-to- back transactions. 6 reserved. 5 66 mhz capable (66mhz_cap) ? ro. hardwired to 0. the device does not support 66 mhz pci.
intel ? 631xesb/632xesb i/o controller hub datasheet 841 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.4 rid ? revision identification register (bn:f3) offset address: 08h attribute: ro default value: see bit description size: 8 bits 25.3.5 pi ? programming interface register (bn:f3) offset address: 09h attribute: ro default value: 02h size: 8 bits 25.3.6 scc ? sub class code register (bn:f3) offset address: 0ah attribute: ro default value: 00h size: 8 bits 25.3.7 bcc ? base class code register (bn:f3) offset address: 0bh attribute: ro default value: 07h size: 8 bits 4 capabilities list (cap_list) ? ro. indicates that a device implements extended capabilities. 0 = the eeprom indicates that the integrated serial port redirection controller does not support extended capabilities. 1 = the eeprom indicates that the integrated serial port redirection controller supports pci power management, message signaled interrupts, and the pci express extensions. 3 interrupt status (ints) ? ro. this bit indicates that an interr upt is pending. it is independent from the state of the interrupt enable bit in the command register. 2:0 reserved bit description bit description 7:0 revision id (rid) ? ro. the default revision id of this device is 00h. the value of the rev id is a logic or between the default value and the value in the eeprom word 1eh. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register. bit description 7:0 programming interface(pi) ? ro.this 8-bit value specifies the interface code. bit description 7:0 sub class code (scc) ? ro. this 8-bit value specifies the sub class of the device as an 16550 com port redirection controller. bit description 7:0 base class code (bcc) ? ro. this 8-bit value specifies the base class of the device as a 16550 com port controller.
842 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.8 cls ? cache line size register (bn:f3) offset address: 0ch attribute: r/w default value: see register desc. size: 8 bits 25.3.9 pmlt ? primary master latency timer register (bn:f3) offset address: 0dh attribute: r/w default value: 00h size: 8 bits 25.3.10 headtyp ? header type register (bn:f3) offset address: 0eh attribute: ro default value: 00h, 80h size: 8 bits 25.3.11 base address registers (bn:f3) 64-bit addressing mode no eeprom or the bar32 eeprom bit set to 0 (word 0ah) 25.3.11.1 ser_io_base ? serial i/o-mapped base address register (bn:f3) offset address: 10?13h attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub ?s integrated serial port redirection controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the serial port redirection controller?s csr registers. bit description 7:0 cache line size(cls) ? r/w. implement for legacy compatibility purposes but has no impact on any pci express device functionality. loaded from eeprom 1ah. bit description 7:0 not used. hardwired to zero. bit description; 7 multi-function device (mfd) ? ro. hardwired to 0 to indicate a single function device, that is, if only a single serial port redirection function is active. 1 for multiple function 6:0 header type (htype) ? ro. this 7-bit field identifies the header layout of the configuration space as an serial port redirection controller. bit description 31:3 base address (io_addr) ? r/w. this field provides 8 bytes of i/o-mapped address space for the serial i/o space. 2:1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space.
intel ? 631xesb/632xesb i/o controller hub datasheet 843 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.11.2 ser_mem_low_base ? serial memory-mapped base address low register (bn:f3) offset address: 14-17h attribute: r/w, ro default value: 00000004h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller requires one bar for memory mapping. software determines which bar (memory or i/ o) is used to access the serial port redirection controller?s csr registers. 25.3.11.3 ser_mem_high_base ? serial memory-mapped base address high register (bn:f3) offset address: 18?1bh attribute: r/w, ro default value: 00000000h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller requires one bar for memory mapping. software determines which bar (memory or i/ o) is used to access the serial port redirection controller?s csr registers. 32-bit addressing mode bar32 bit in the eeprom set to 1 (word 0ah). 25.3.11.4 ser_io_base ? serial i/o-mapped base address register (bn:f3) offset address: 10-13h attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller requires one bar for memory mapping. software determines which bar (memory or i/ o) is used to access the serial port redirection controller?s csr registers. bit description 31:12 base address (mem_addr) ? r/w. this field contains the upper 20 bits of the base address provides 4 kb for the serial memory spaces. 11:4 reserved 3 prefetchable (mem_pf) ? ro. hardwired to 0 to indicate that this is not a pre-fetchable memory- mapped address range. 2:1 type (mem_type) ? ro. hardwired to 10b to indicate the memory-mapped address range may be located anywhere in 64-bit address space. 0 memory-space indicator (mem_space) ? ro. hardwired to 0 to indicate that this base address maps to memory space. bit description 31:0 base address (mem_addr) ? r/w. this field contains the upper 32 bits of the base address provides 4 kb of memory-mapped space for the serial memory spaces bit description 31:3 base address (io_addr) ? r/w. this field provides 8 bytes of i/o-mapped address space for the serial port i/o space. 2:1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space.
844 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.11.5 ser_mem_base ? serial memory-mapped base address register (bn:f3) offset address: 14-17h attribute: r/w, ro default value: 00000000h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller requires one bar for memory mapping. software determines which bar (memory or i/ o) is used to access the serial port redirection controller?s csr registers. 25.3.12 svid ? subsystem vendor identification (bn:f3) offset address: 2c?2d attribute: ro default value: 8086h size: 16 bits 25.3.13 sid ? subsystem identification (bn:f3) offset address: 2e?2fh attribute: ro default value: 0000h size: 16 bits 25.3.14 cap_ptr ? capabilities pointer (bn:f3) offset address: 34h attribute: ro default value: c8h size: 8 bits bit description 31:12 base address (mem_addr) ? r/w. this field contains the upper 20 bits of the base address provides 4 kb for the serial memory spaces. 11:4 reserved 3 prefetchable (mem_pf) ? ro. hardwired to 0 to indicate that this is not a pre-fetchable memory- mapped address range. 2:1 type (mem_type) ? ro. hardwired to 10b to indicate the memory-mapped address range may be located anywhere in 64-bit address space. 0 memory-space indicator (mem_space) ? ro. hardwired to 0 to indicate that this base address maps to memory space. bit description 15:0 subsystem vendor id (svid) ? ro. this value may be loaded automatically from the eeprom address 0ch upon power up or reset if the eeprom is present (and properly programmed) and if word 0ah bit 1 is set. a value of 0x8086 is default for this field upon power up if the eeprom does not respond or is not programmed. bit description 15:0 subsystem id (sid) ? ro. this value may be loaded automatically from the eeprom address 106h/46 h upon power up with a default value of 0x0000 if the eeprom is present (and properly programmed) and if word 0ah bit 1 is set. bit description 7:0 capabilities pointer (cap_ptr) ? ro. hardwired to c8h to indicate the offset within configuration space for the location of the power management registers.
intel ? 631xesb/632xesb i/o controller hub datasheet 845 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.15 int_ln ? interrupt line register (bn:f3) offset address: 3ch attribute: r/w default value: 00h size: 8 bits 25.3.16 int_pn ? interrupt pin register (bn:f3) offset address: 3dh attribute: ro default value: 03h size: 8 bits 25.3.17 min_gnt ? minimum grant register (bn:f0/f1) offset address: 3eh attribute: ro default value: 00h size: 8 bits 25.3.18 max_lat ? maximum latency register (bn:f0/f1) offset address: 3fh attribute: ro default value: 00h size: 8 bits 25.3.19 cap_id ? capability identification register (bn:f3) offset address: c8h attribute: ro default value: 01h size: 8 bits 25.3.20 nxt_ptr ? next item pointer (bn:f3) offset address: c9h attribute: ro default value: d0h size: 8 bits bit description 7:0 interrupt line (int_ln) ? r/w. this field identifies the system interrupt line to which the serial port redirection controller?s pci interrupt request pin (as defined in the interrupt pin register) is routed. bit description 7:0 interrupt pin (int_pn) ? ro. serial port function - a value of 1 / 2 / 3 / 4 indicates that this function implements legacy interrupt on inta / intb / intc / intd respectively. loaded from eeprom word 21h. bit description 7:0 minimum grant (min_gnt) ? ro. not used, hardwired to 00h. bit description 7:0 maximum latency (max_lat) ? ro. not used, hardwired to 00h. bit description 7:0 capability id (cap_id) ? ro. hardwired to 01h to indicate that the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller supports pci power management. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to d0h to indicate that msi is the next capability item in the capabilities list.
846 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.21 pm_cap ? power management capabilities (bn:f3) offset address: ca?cbh attribute: ro default value: see bit description size: 16 bits 25.3.22 pmcsr ? power management control/status register (bn:f3) offset address: cc?cdh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits bit description 15:11 pme support (pme_sup) ? ro. this 5-bit field indicates the power states in which the serial port redirection controller may assert pme#. the default value depends on eeprom word 0ah. 00000b = no pme at all states. 01001b = pme at d0 and d3 hot 11001b = pme at d0, d3 hot and d3 cold 10:9 hardwired to '0'. 8:6 auxiliary current (aux_cur) ? ro. hardwired to 000b to indicate that the serial port redirection controller implements the data registers. the auxiliary power consumption is the same as the current consumption reported in the d3 state in the data register. 5 device specific initialization (dsi) ? ro. hardwired to 1 to indicate that special initialization of this function is required (beyond the standard pci configuration header) before the generic class device driver is able to use it. dsi is required fo r the serial port redirection controller after d3-to- d0 reset. 4 reserved 3 pme clock (pme_clk) ? ro. hardwired to 0 to indicate that the serial port redirection controller does not require a clock to generate a power management event. 2:0 version (ver) ? ro. hardwired to 010b to indicate that the serial port redirection controller complies with of the pci power management specification, revision 1.1. bit description 15 pme status (pme_stat) ? r/wc. 0 = software clears this bit by writing a 1 to it. this also deasserts the pme# signal and clears the pme status bit in the power management driver register. when the pme# signal is enabled, the pme# signal reflects the state of the pme status bit. 1 = set upon occurrence of a wakeup event, independent of the state of the pme enable bit. 14:13 data scale (dscale) ? ro. this field indicates the data register scaling factor. it equals 10b for all supported registers: 0,3,4,7 and 8, as selected by the ?data select? field. 12:9 data select (dsel) ? r/w. this field is used to select which data is reported through the data register and data scale field. 8 pme enable (pme_en) ? r/w. this bit enables the intel ? 6321esb i/o controller hub?s integrated serial port redirection controller to assert pme#. 0 = the device will not assert pme#. 1 = enable pme# assertion when pme status is set. 7:2 reserved 1:0 power state (pwr_st) ? r/w. this 2-bit field is used to determine the current power state of the integrated serial port redirection controller, and to put it into a new power state. the definition of the field values is as follows: 00 = d0 01/10 = reserved 11 = d3
intel ? 631xesb/632xesb i/o controller hub datasheet 847 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.23 pcidata ? pci power mana gement data register (bn:f3) offset address: cfh attribute: ro default value: 00h size: 8 bits this optional register is used to report power consumption and heat dissipation. reported register is controlled by the data_select field in the pmcsr, and the power scale is reported in the data_scale field in the pmcsr. the data of this field is loaded from the eeprom if pm is enabled in the eeprom or with a default value of 0x00 otherwise. the values for intel ? 6321esb i/o controller hub serial port redirection controller functions is shown in table 25-7 . 25.3.24 msi_cap_id ? capability identification register (bn:f3) offset address: d0h attribute: ro default value: 05h size: 8 bits 25.3.25 msi_nxt_ptr ? next item pointer (bn:f3) offset address: d1h attribute: ro default value: e0h size: 8 bits 25.3.26 msi_mcr ? message control register (bn:f3) offset address: d2?d3h attribute: ro default value: 0080 size: 16 bits bit description 7:0 power management data (pwr_mgt) ? ro. state dependent power consumption and heat dissipation data. table 25-7. data register structure function d0 (consume/ dissipate) d3 (consume/ dissipate) common data_scale data_select (0x0 / 0x4) (0x3 / 0x7) (0x8) serial port redirection eep addr 22h eep addr 101/41h 0x00 10b bit description 7:0 capability id (cap_id) ? ro. hardwired to 05h to indicate that the linked list item as being the message signaled interrupt registers. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to e0h to indicate that pci express capability is the next item in the capability list. bit description 15:11 reserved. 7 64 support (64_sup) ? ro. hardwired to 1 to indicate that the serial port redirection controller is capable of generating 64 bit message addresses.
848 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.27 msi_mar_low ? message address low register (bn:f3) offset address: d4?d7h attribute: ro, r/w, r/wc default value: 00000000h size: 32 bits 25.3.28 msi_mar_high ? message address high register (bn:f3) offset address: d8?dbh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 25.3.29 msi_mdr ? message data register (bn:f3) offset address: dc?ddh attribute: r/w default value: 0000h size: 16 bits 25.3.30 pci express_cap_id ? pci express* capability identification register (bn:f3) offset address: e0h attribute: ro default value: 10h size: 8 bits 6:4 multiple message enable(mm_enable) ? ro. hardwired to 000b to indicate that the serial port redirection controller supports single message per function. 3:1 multiple message capable(mm_cap) ? ro. hardwired to 000b to indicate that the serial port redirection controller capable of single requested message per function. 0 msi enable(msi_enable) ? r/w. if 1, the serial port redi rection controller will generate msi for interrupt assertion instead of intx signaling. bit description bit description 7:2 message address low(msg_addr_low) ? r/w. written by the system to indicate the lower 32 bits of the address to use for the msi memory write transaction. the lower two bits will always return 0 regardless of the write operation. bit description 31:0 message address high(msg_addr_high) ? r/w. this field contains the upper 32 bits of the address to use for the msi memory write transaction. bit description 15:0 message data(msg_data) ? r/w. written by the system to indicate the lower 16 bits of the data written in the msi memory write dword transaction. the upper 16 bits of the transaction are written as 0 bit description 7:0 capability id (cap_id) ? ro. hardwired to 10h to indicate that the linked list item as being the pci express capability registers.
intel ? 631xesb/632xesb i/o controller hub datasheet 849 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.31 pci express_nxt_ptr ? pci express* next item pointer (bn:f3) offset address: e1h attribute: ro default value: 00h size: 8 bits 25.3.32 pci express_cap ? pci express* capability register (bn:f3) offset address: e2?e3h attribute: ro default value: 0011 size: 16 bits 25.3.33 pci express_dev_cap ? pci express* device capability register (bn:f3) offset address: e4?e7h attribute: ro, r/w, r/wc default value: 00000cc1h size: 32 bits bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to 00h to indicate that it is the last item in the capability linked list. bit description 15:14 reserved. 13:9 interrupt message number (int_msg_num) ? ro. multiple msi per function is not supported. hardwired to 00000b 8 slot implemented ? ro. slot option not implemented hardwired to 0. 7:4 device/port type ? ro. indicates the type of pci express functions. hardwired to 0001b 3:0 capability version(cap_version) ? ro. indicates the pci express capability structure version number 0001b. bit description 31:28 reserved. 27:26 slot power limit scale ? ro. used in upstream port only. hardwired to 00b. 25:18 slot power limit value ? ro. used in upstream port only. hardwired to 00b 17:15 reserved. 14 power indicator present ? ro. hardwired to 0b 13 attention indicator present ? ro. hardwired to 0b 12 attention button present ? ro. hardwired to 0b 11:9 endpoint l1 acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan core can withstand due to the transition from l1 state to the l0 state. all functions share the same value loaded from the eeprom pci express init configuration 1 word 18h 8:6 endpoint l0s acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan core can withstand due to the transition from l0s state to the l0 state. all functions share the same value loaded from the eeprom pci express init configuration 1 word 18h. 5 extended tag field supported ? ro. indicates the pci express capability structure version number 0001b. 4:3 phantom function supported ? ro. indicates the type of pci express functions. hardwired to 0001b 2:0 max payload size supported ? ro. indicates the type of pci express functions. hardwired to 0001b
850 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.34 pci express_dev_cont ? pci express* device control register (bn:f3) offset address: e8?e9h attribute: ro, r/w default value: 2810h size: 16 bits 25.3.35 pci express_dev_status ? pci express* device status register (bn:f3) offset address: ea?ebh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits bit description 15 reserved. 14:12 max read request size - this field sets maximum read request size for the device as a requester. the default value is 010b (512b) for the lan devices. 11 enable no snoop ? r/w. snoop is gated by nonsnoop bits in the gcr register in the csr space. default is 1b 10 auxiliary power pm enable - when set enables the device to draw aux power independent of pme aux power. intel ? 6321esb i/o controller hub lan core is a multi function device, therefore allowed to draw aux power if at least one of the functions has this bit sets 9 phantom function enable ? rw. hardwired to 0b 8 extended tag field enable ? rw. hardwired to 0b 7:5 max payload size ? rw. slot option not implemented hardwired to 0. 4 enable relaxed ordering ? if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request reporting enable ? rw. enable error report. 2 fatal error reporting enable ? rw. enable error report. 1 non-fatal error reporting enable ? rw. enable error report. 0 correctable error reporting enable ? rw. enable error report. bit description 15:6 reserved. 5 transaction pending ? ro. slot option not implemented hardwired to 0. 4 aux power detected ? ro. if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request detected ? r/wc. enable error report. 2 fatal error detected ? r/wc. enable error report. 1 non-fatal error detected ? r/wc. enable error report. 0 correctable error detected ? r/wc. enable error report.
intel ? 631xesb/632xesb i/o controller hub datasheet 851 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.36 pci express_link_cap ? pci express* link capability register (bn:f3) offset address: ec?efh attribute: ro, r/w default value: see description size: 16 bits 25.3.37 pci express_link_cont ? pci express* link control register (bn:f3) offset address: f0?f1h attribute: r/w default value: 0000h size: 16 bits bit description 31:24 port number ? ro. the pci express* port number for the given pci express link. field is set in the link training phase. default to 0x0. 23:18 reserved. 17:15 l1 exit latency - indicates the exit latency from l1 to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h. default to 110b (32-64us). 14:12 l0s exit latency - indicates the exit latency from l0s to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h (two values for common pci express clock or separate pci express clock). default to 001b (64-128ns). 11:10 active state link pm support ? ro. indicates the level of active state power management supported in intel ? 6321esb i/o controller hub lan core. defined encodings are: 00breserved 01bl0s entry supported 10breserved 11bl0s and l1 supported this field is loaded from the eeprom pci expr ess init configuration 3 word 1ah.default to 11b 9:4 max link width ? ro. indicates the max link width. intel ? 6321esb i/o controller hub lan controller can support by 1 and by 4-link width. the field is loaded from the eeprom pci express init configuration 3 word 1ah with a default value of 4 lanes. default to 00100b. 3:0 max link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b bit description 15:8 reserved. 7 extended synch ? rw. this bit forces extended tx of fts ordered set in fts and extra ts2 at exit from l1 prior to enter l0. 6 common clock configuration ? rw. when set indicates that intel ? 6321esb i/o controller hub and the component at the other end of the link are operating with a common reference clock. a value of 0 indicates that they operating with an asynchronous clock. this parameter affects the l0s exit latencies. 5 retrain clock ? ro. not applicable for endpoint devices, hardwired to 0. 4 link disable ? ro. not applicable for endpoint devices, hardwired to 0. 3 read completion boundary ? r/w 2 reserved. 1:0 message data(msg_data) ? r/w. this field controls the active state pm supported on the link. link pm functionality is determined by the lowest common denominator of all functions. defined encodings are: 00b pm disabled 01b l0s entry supported 10b reserved 11b l0s and l1 supported
852 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.3.38 pci express_link_status ? pci express* link status register (bn:f3) offset address: f2?f3h attribute: r/w default value: 1011h size: 16 bits 25.4 ipmi/kcs0 controller configuration registers (bn:f4) bit description 15:13 reserved. 12 slot clock configuration ? when set, it indicates it uses the physical reference clock that the platform provides on the connector. this bit must be cleared uses an independent clock. default to be 1b. 11 link training ? ro. indicates that link training is in progress. 10 link training error ? ro. indicates that link training error has occurred. 9:4 negotiated link width ? ro. indicates the negotiated width of the link. 000001b = x1 000100b = x4 3:0 link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b table 25-8. ipmi/kcs0 pci configuration register address map bn:f4) (sheet 1 of 2) offset mnemonic register name default type mandatory pci configuration registers 00?01h vid vendor identification 8086h ro 02?03h did device identification 1086h ro 04?05h pcicmd pci command 0000h ro, rw 06?07h pcists pci status 0010h ro, r/wc 08h rid revision identification see register description ro 09h pi program interface 01h ro 0ah scc sub class code 07h ro 0bh bcc base class code 0c ro 0ch cls cache line size see register description r/w 0dh pmlt primary master latency timer 00h r/w 0eh headtyp header type 00h ro bar registers for 64-bit addressing modes 10?13h ipmi_kcs_mem_base_low ipmi/kcs mem?mapped low base address 00000004h r/w, ro 14?17h ipmi_kcs_mem_base_high ipmi/kcs mem?mapped base address 00000000h r/w, ro 18?1bh ipmi_kcs_io_base ipmi/kcs i/o?mapped base address 00000001h r/w, ro bar registers for 32-bit addressing modes 10?13h ipmi_kcs_mem_base ipmi/kcs mem?mapped base address 00000000h r/w, ro
intel ? 631xesb/632xesb i/o controller hub datasheet 853 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.1 vid ? vendor identification register (bn:f0/f1) offset address: 00?01h attribute: ro default value: 8086h size: 16 bits 14?17h ipmi_kcs_io_base ipmi/kcs i/o?mapped base address 00000001h r/w, ro 2c?2dh svid subsystem vendor identification 8086h ro 2e?2fh sid subsystem identification 0000h ro 34h cap_ptr capabilities pointer c8h ro 3ch int_ln interrupt line 00h r/w 3dh int_pn interrupt pin 04h ro 3eh min_gnt minimum grant 00h ro 3fh max_lat maximum latency 00h ro pci power management registers c8h cap_id capability id 01h ro c9h nxt_ptr next item pointer d0h ro ca?cbh pm_cap power management capabilities see bit description ro cc?cdh pmcsr power management control/ status 0000h r/w, ro, r/ wc cf pcidata pci power management data 00h ro message signaled interrupt configuration registers d0h msi_cap_id msi capability id 05h ro d1h msi_nxt_ptr msi t next item pointer e0h ro d2-d3 msi_mcr msi control register 0080 r/w d4-d7h msi_mar_low msi message low address 00000000h r/w d8-db msi_mar_high msi message high address 00000000h r/w dc-dd msi_mdr message data register 0000 r/w pci express* configuration registers e0h pci express_cap_id pci express capability identification register 10h ro e1h pci express_nxt_ptr pci express next item pointer 00h ro e2-e3 pci express_cap pci express capability 0011 ro e4-e7h pci express_dev_cap pci express device capability 00000000h ro e8-e9 pci express_dev_cont pci express device control 2810h r/w ea-eb pci express_dev_status pci express device status 0000h ro ec-ef pci express_link_cap pci express link capability see description ro f0-f1 pci express_link_cont pci express link control 0000h r/w f2-f3 pci express_link_status pci express link status 1011h ro table 25-8. ipmi/kcs0 pci configuration register address map bn:f4) (sheet 2 of 2) offset mnemonic register name default type bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel.
854 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.2 did ? device identification register (bn:f4) offset address: 02?03h attribute: ro default value: 1086h size: 16 bits 25.4.3 pcicmd ? pci command register (bn:f4) offset address: 04?05h attribute: ro, r/w default value: 0000h size: 16 bits 25.4.4 pcists ? pci status register (bn:f4) offset address: 06?07h attribute: ro, r/wc default value: 0010h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. bit description 15:0 device id - ro. this is a 16-bit value assigned to the intel ? 6321esb i/o controller hub integrated ipmi/kcs0 controller. if word 0ah bit 0 is set in the eeprom, the device id is loaded from the eeprom, word 104h/44h after the hardware reset. if not set, the default value is 1086h. 15:11 reserved 10 interrupt disable ? r/w. 0 = enable. 1 = disables serial port redirection controller to assert its intd signal. the interrupt disable register bit is a read-write bit that controls the ability of a pci express device to generate a legacy interrupt message. when set, devices are prevented from generating legacy interrupt messages. 9 fast back to back enable (fbe) ? ro. hardwired to 0. the integrated ipmi/kcs0 controller will not run fast back-to-back pci cycles. 8 serr# enable (serr_en) ? r/w. 0 = disable. 1 = enable. allow serr# to be asserted. 7 wait cycle control (wcc) ? ro. hardwired to 0. not implemented. 6 parity error response (per) ? r/w. 0 = the ipmi/kcs0 controller will ignore pci parity errors. 1 = the integrated ipmi/kcs0 controller will take normal action when a pci parity error is detected and will enable generation of parity on esi. 5 vga palette snoop (vps) ? ro. hardwired to 0. not implemented. 4 memory write and invalidate enable (mwie) ? ro. hardwired to 0. not implemented. 3 special cycle enable (sce) ? ro. hardwired to 0. the ipmi/kcs0 controller ignores special cycles. 2 bus master enable (bme) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller may function as a pci bus master. 1 memory space enable (mse) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller will respond to the memory space accesses. 0 i/o space enable (iose) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller will respond to the i/o space accesses. 15:11 reserved
intel ? 631xesb/632xesb i/o controller hub datasheet 855 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.5 rid ? revision identification register (bn:f4) offset address: 08h attribute: ro default value: see bit description size: 8 bits bit description 15 detected parity error ( dpe) ? r/wc. 0 = parity error not detected. 1 = the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller has detected a parity error on the pci bus (will be set even if parity error response is disabled in the pci command register). 14 signaled system error ( sse) ? r/wc. 0 = integrated ipmi/kcs0 controller has not asserted serr# 1 = the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller has asserted serr#. serr# can be routed to cause nmi, smi#, or interrupt. 13 master abort status ( rma) ? r/wc. 0 = master abort not generated 1 = the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller (as a pci master) has generated a master abort. 12 received target abort (rta) ? r/wc. 0 = target abort not received. 1 = the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller (as a pci master) has received a target abort. 11 signaled target abort (sta) ? r/wc. 0 = target abort not signaled. 1 = the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller (as a pci master) has signaled a target abort. 10:9 devsel timing ? ro. hardwired to 0. 8 data parity error detected (dped) ? r/wc. 0 = parity error not detected (conditions below are not met). 1 = all of the following three conditions have been met: 1. the ipmi/kcs0 controller is acting as bus master 2. the ipmi/kcs0 controller has asserted perr# (for reads) or detected perr# asserted (for writes) 3. the parity error response bit in the ipmi/kcs0 controller?s pci command register is set. 7 fast back to back capable (fb2bc) ? ro. hardwired to 0. the device does not accept fast back-to- back transactions. 6 reserved. 5 66 mhz capable (66mhz_cap) ? ro. hardwired to 0. the device does not support 66 mhz pci. 4 capabilities list (cap_list) ? ro. indicates that a device implements extended capabilities. 0 = the eeprom indicates that the integrated ipmi/kcs0 controller does not support extended capabilities. 1 = the eeprom indicates that the integrated ipmi/kcs0 controller supports pci power management, message signaled interrupts, and the pci express extensions. 3 interrupt status (ints) ? ro. this bit indicates that an interr upt is pending. it is independent from the state of the interrupt enable bit in the command register. 2:0 reserved bit description 7:0 revision id (rid) ? ro. the default revision id of this device is 00h. the value of the rev id is a logic or between the default value and the value in the eeprom word 1eh.
856 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.6 pi ? programming interface register (bn:f4) offset address: 09h attribute: ro default value: 01h size: 8 bits 25.4.7 scc ? sub class code register (bn:f4) offset address: 0ah attribute: ro default value: 07h size: 8 bits 25.4.8 bcc ? base class code register (bn:f4) offset address: 0bh attribute: ro default value: 0ch size: 8 bits 25.4.9 cls ? cache line size register (bn:f4) offset address: 0ch attribute: r/w default value: see register desc. size: 8 bits 25.4.10 pmlt ? primary master latency timer register (bn:f4) offset address: 0dh attribute: r/w default value: 00h size: 8 bits 25.4.11 headtyp ? header type register (bn:f4) offset address: 0eh attribute: ro default value: 00h, 80h size: 8 bits bit description 7:0 programming interface(pi) ? ro. this field is loaded from eeprom, word 4eh/10eh bit description 7:0 sub class code (scc) ? ro. this 8-bit value specifies the sub class of the device as an ipmi/kcs controller. this field is load ed from eeprom, word 4eh/10eh bit description 7:0 base class code (bcc) ? ro. this 8-bit value specifies the base class of the device as a ipmi/kcs controller. this field is loaded from eeprom, word 4fh/10fh bit description 7:0 cache line size(cls) ? r/w. implement for legacy compatibility purposes but has no impact on any pci express device functionality. loaded from eeprom 1ah. bit description 7:0 not used. hardwired to zero. bit description 7 multi-function device (mfd) ? ro. hardwired to 0 to indicate a single function device, that is, if only a single lan function is active. 1 for multiple function 6:0 header type (htype) ? ro. this 7-bit field identifies the header layout of the configuration space as an ethernet controller.
intel ? 631xesb/632xesb i/o controller hub datasheet 857 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.12 base address registers (bn:f4) 64-bit addressing mode no eeprom or the bar32 eeprom bit set to 0 (word 0ah). 25.4.12.1 ipmi_kcs_mem_base_low ? ipmi/kcs memory-mapped base address low register (bn:f4) offset address: 10-13h attribute: r/w, ro default value: 00000004h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the ipmi/kcs0 controller?s csr registers. 25.4.12.2 ipmi_kcs_mem_base_high ? ipmi/kcs memory-mapped base address high register (bn:f4) offset address: 14?17h attribute: r/w, ro default value: 00000000h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the ipmi/kcs0 controller?s csr registers. 25.4.12.3 ipmi_kcs_io_base ? ipmi/kcs i/o-mapped base address register (bn:f4) offset address: 18?1bh attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the ipmi/kcs0 controller?s csr registers. bit description 31:12 base address (mem_addr) ? r/w. this field contains the upper 20 bits of the base address provides 4 kb of memory-mapped space for the ipmi/kcs function. 11:4 reserved 3 prefetchable (mem_pf) ? ro. hardwired to 0 to indicate that this is not a pre-fetchable memory- mapped address range. 2:1 type (mem_type) ? ro. hardwired to 10b to indicate the memory-mapped address range may be located anywhere in 64-bit address space. 0 memory-space indicator (mem_space) ? ro. hardwired to 0 to indicate that this base address maps to memory space. bit description 31:0 base address (mem_addr) ? r/w. this field contains the upper 32 bits of the base address provides 4 kb of memory-mapped space for the ipmi/kcs function.
858 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 32-bit addressing mode bar32 bit in the eeprom set to 1 (word 0ah). 25.4.12.4 ipmi_kcs_mem_base ? ipmi/kcs memory-mapped base address register (bn:f4) offset address: 10-13h attribute: r/w, ro default value: 00000000h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the ipmi/kcs0 controller?s csr registers. 25.4.12.5 ipmi_kcs_io_base ? ipmi/kcs i/o-mapped base address register (bn:f4) offset address: 14-17h attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the ipmi/kcs0 controller?s csr registers. bit description 31:2 base address (io_addr) ? r/w. this field provides 4 bytes of i/o-mapped address space for the ipmi/kcs function. 1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space. bit description 31:12 base address (mem_addr) ? r/w. this field contains the upper 20 bits of the base address provides 4 kb of memory-mapped space for the ipmi/kcs function. 11:4 reserved 3 prefetchable (mem_pf) ? ro. hardwired to 0 to indicate that this is not a pre-fetchable memory- mapped address range. 2:1 type (mem_type) ? ro. hardwired to 00b to indicate the memory-mapped address range may be located anywhere in 32-bit address space. 0 memory-space indicator (mem_space) ? ro. hardwired to 0 to indicate that this base address maps to memory space. bit description 31:2 base address (io_addr) ? r/w. this field provides 4 bytes of i/o-mapped address space for the ipmi/kcs function. 1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space.
intel ? 631xesb/632xesb i/o controller hub datasheet 859 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.13 svid ? subsystem vendor identification(bn:f4) offset address: 2c?2d attribute: ro default value: 8086h size: 16 bits 25.4.14 sid ? subsystem identification (bn:f4) offset address: 2e?2fh attribute: ro default value: 0000h size: 16 bits 25.4.15 cap_ptr ? capabilities pointer (bn:f4) offset address: 34h attribute: ro default value: c8h size: 8 bits 25.4.16 int_ln ? interrupt line register (bn:f4) offset address: 3ch attribute: r/w default value: 00h size: 8 bits 25.4.17 int_pn ? interrupt pin register (bn:f4) offset address: 3dh attribute: ro default value: 04h size: 8 bits bit description 15:0 subsystem vendor id (svid) ? ro. this value may be loaded automatically from the eeprom address 0ch upon power up or reset if the eeprom is present (and properly programmed) and if word 0ah bit 1 is set. a value of 0x8086 is default for this field upon power up if the eeprom does not respond or is not programmed. bit description 15:0 subsystem id (sid) ? ro. this value may be loaded automatically from the eeprom address 107h/47h upon power up with a default value of 0x0000 if the eeprom is present (and properly programmed) and if word 0ah bit 1 is set. bit description 7:0 capabilities pointer (cap_ptr) ? ro. hardwired to c8h to indicate the offset within configuration space for the location of the power management registers. bit description 7:0 interrupt line (int_ln) ? r/w. this field identifies the system interrupt line to which the ipmi/ kcs0 controller?s pci interrupt request pin (as defined in the interrupt pin register) is routed. bit description 7:0 interrupt pin (int_pn) ? ro. ipmi/kcs function - a value of 0x1 / 0x2 / 0x3 / 0x4 indicates that this function implements legacy interrupt on inta / intb / intc / intd respectively. loaded from eeprom word 21h.
860 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.18 min_gnt ? minimum grant register (bn:f4) offset address: 3eh attribute: ro default value: 00h size: 8 bits 25.4.19 max_lat ? maximum latency register (bn:f4) offset address: 3fh attribute: ro default value: 00h size: 8 bits 25.4.20 cap_id ? capability identification register (bn:f4) offset address: c8h attribute: ro default value: 01h size: 8 bits 25.4.21 nxt_ptr ? next item pointer (bn:f4) offset address: c9h attribute: ro default value: d0h size: 8 bits 25.4.22 pm_cap ? power management capabilities (bn:f4) offset address: ca?cbh attribute: ro default value: see bit description size: 16 bits bit description 7:0 minimum grant (min_gnt) ? ro. not used, hardwired to 00h. bit description 7:0 maximum latency (max_lat) ? ro. not used, hardwired to 00h. bit description 7:0 capability id (cap_id) ? ro. hardwired to 01h to indicate that the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller supports pci power management. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to d0h to indicate that power management is the last item in the capabilities list. bit description 15:11 pme support (pme_sup) ? ro. this 5-bit field indicates the power states in which the ipmi/kcs0 controller may assert pme#. the default value depends on eeprom word 0ah. 00000b = no pme at all states. 01001b = pme at d0 and d3 hot 11001b = pme at d0, d3 hot and d3 cold 10:9 hardwired to '0'. 8:6 auxiliary current (aux_cur) ? ro. hardwired to 000b to indicate that the ipmi/kcs0 controller implements the data registers. the auxiliary power consumption is the same as the current consumption reported in the d3 state in the data register. 5 device specific initialization (dsi) ? ro. hardwired to 1 to indicate that special initialization of this function is required (beyond the standard pci configuration header) before the generic class device driver is able to use it. dsi is required for the ipmi/kcs0 controller after d3-to-d0 reset.
intel ? 631xesb/632xesb i/o controller hub datasheet 861 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.23 pmcsr ? power management control/status register (bn:f4) offset address: cc?cdh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 25.4.24 pcidata ? pci power mana gement data register (bn:f4) offset address: cfh attribute: ro default value: 00h size: 8 bits this optional register is used to report power consumption and heat dissipation. reported register is controlled by the data_select field in the pmcsr, and the power scale is reported in the data_scale field in the pmcsr. the data of this field is loaded from the eeprom if pm is enabled in the eeprom or with a default value of 0x00 otherwise. the values for intel ? 6321esb i/o controller hub serial port redirection controller functions is shown in table 25-9 . 4 reserved 3 pme clock (pme_clk) ? ro. hardwired to 0 to indicate that the ipmi/kcs0 controller does not require a clock to generate a power management event. 2:0 version (ver) ? ro. hardwired to 010b to indicate that the ipmi/kcs0 controller complies with of the pci power management specification, revision 1.1. bit description bit description 15 pme status (pme_stat) ? r/wc. 0 = software clears this bit by writing a 1 to it. this also deasserts the pme# signal and clears the pme status bit in the power management driver register. when the pme# signal is enabled, the pme# signal reflects the state of the pme status bit. 1 = set upon occurrence of a wakeup event, independent of the state of the pme enable bit. 14:13 data scale (dscale) ? ro. this field indicates the data register scaling factor. it equals 10b for all supported registers: 0,3,4,7 and 8, as selected by the ?data select? field. 12:9 data select (dsel) ? r/w. this field is used to select which data is reported through the data register and data scale field. 8 pme enable (pme_en) ? r/w. this bit enables the intel ? 6321esb i/o controller hub?s integrated ipmi/kcs0 controller to assert pme#. 0 = the device will not assert pme#. 1 = enable pme# assertion when pme status is set. 7:2 reserved 1:0 power state (pwr_st) ? r/w. this 2-bit field is used to determine the current power state of the integrated ipmi/kcs0 controller, and to put it into a new power state. the definition of the field values is as follows: 00 = d0 01/10 = reserved 11 = d3 bit description 7:0 power management data (pwr_mgt) ? ro. state dependent power consumption and heat dissipation data.
862 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.25 msi_cap_id ? capability identification register (bn:f4) offset address: d0h attribute: ro default value: 05h size: 8 bits 25.4.26 msi_nxt_ptr ? next item pointer (bn:f4) offset address: d1h attribute: ro default value: e0h size: 8 bits 25.4.27 msi_mcr ? message control register (bn:f4) offset address: d2?d3h attribute: ro default value: 0080 size: 16 bits 25.4.28 msi_mar_low ? message address low register (bn:f4) offset address: d4?d7h attribute: ro, r/w, r/wc default value: 00000000h size: 32 bits table 25-9. data register structure function d0 (consume/ dissipate) d3 (consume/ dissipate) common data_scale data_select (0x0 / 0x4) (0x3 / 0x7) (0x8) ipmi/kcs eep addr 22h eep addr 101/41h 0x00 10b bit description 7:0 capability id (cap_id) ? ro. hardwired to 05h to indicate that the linked list item as being the message signaled interrupt registers. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to e0h to indicate that pci express capability is the next item in the capability list. bit description 15:11 reserved. 7 64 support (64_sup) ? ro. hardwired to 1 to indicate that the ipmi/kcs0 controller is capable of generating 64 bit message addresses. 6:4 multiple message enable(mm_enable) ? ro. hardwired to 000b to indicate that the ipmi/ kcs0 controller supports single message per function. 3:1 multiple message capable(mm_cap) ? ro. hardwired to 000b to indicate that the ipmi/kcs0 controller capable of single requested message per function. 0 msi enable(msi_enable) ? r/w. if 1, the ipmi/kcs0 controller will generate msi for interrupt assertion instead of intx signaling. bit description 7:2 message address low(msg_addr_low) ? r/w. written by the system to indicate the lower 32 bits of the address to use for the msi memory write transaction. the lower two bits will always return 0 regardless of the write operation.
intel ? 631xesb/632xesb i/o controller hub datasheet 863 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.29 msi_mar_high ? message a ddress high register (bn:f4) offset address: d8?dbh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 25.4.30 msi_mdr ? message data register (bn:f4) offset address: dc?ddh attribute: r/w default value: 0000h size: 16 bits 25.4.31 pci express_cap_id ? pci express* capability identification register (bn:f4) offset address: e0h attribute: ro default value: 10h size: 8 bits 25.4.32 pci express_nxt_ptr ? pci express* next item pointer (bn:f4) offset address: e1h attribute: ro default value: 00h size: 8 bits 25.4.33 pci express_cap ? pci express* capability register (bn:f4) offset address: e2?e3h attribute: ro default value: 0011 size: 16 bits bit description 31:0 message address high(msg_addr_high) ? r/w. this field contains the upper 32 bits of the address to use for the msi memory write transaction. bit description 15:0 message data(msg_data) ? r/w. written by the system to indicate the lower 16 bits of the data written in the msi memory write dword transaction. the upper 16 bits of the transaction are written as 0 bit description 7:0 capability id (cap_id) ? ro. hardwired to 10h to indicate that the linked list item as being the pci express capability registers. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to 00h to indicate that it is the last item in the capability linked list. bit description 15:14 reserved. 13:9 interrupt message number (int_msg_num) ? ro. multiple msi per function is not supported. hardwired to 00000b 8 slot implemented ? ro. slot option not implemented hardwired to 0. 7:4 device/port type ? ro. indicates the type of pci express functions. hardwired to 0001b 3:0 capability version(cap_version) ? ro. indicates the pci express capability structure version number 0001b.
864 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.34 pci express_dev_cap ? pci express* device capability register (bn:f4) offset address: e4?e7h attribute: ro, r/w, r/wc default value: 00000000h size: 32 bits 25.4.35 pci express_dev_cont ? pci express* device control register (bn:f4) offset address: e8?e9h attribute: ro, r/w default value: 2810h size: 16 bits bit description 31:28 reserved. 27:26 slot power limit scale ? ro. used in upstream port only. hardwired to 00b. 25:18 slot power limit value ? ro. used in upstream port only. hardwired to 00b 17:15 reserved. 14 power indicator present ? ro. hardwired to 0b 13 attention indicator present ? ro. hardwired to 0b 12 attention button present ? ro. hardwired to 0b 11:9 endpoint l1 acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan core can withstand due to the transition from l1 state to the l0 state. all functions share the same value loaded from the eeprom pci express* init configuration 1 word 18h 8:6 endpoint l0s acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan core can withstand due to the transition from l0s state to the l0 state. all functions share the same value loaded from the eeprom pci express init configuration 1 word 18h. 5 extended tag field supported ? ro. indicates the pci express capability structure version number 0001b. 4:3 phantom function supported ? ro. indicates the type of pci express functions. hardwired to 0001b 2:0 max payload size supported ? ro. indicates the type of pci express functions. hardwired to 0001b bit description 15 reserved. 14:12 max read request size - this field sets maximum read request size for the device as a requester. the default value is 010b (512b) for the lan devices. 11 enable no snoop ? r/w. snoop is gated by nonsnoop bits in the gcr register in the csr space. default is 1b 10 auxiliary power pm enable - when set enables the device to draw aux power independent of pme aux power. intel ? 6321esb i/o controller hub lan core is a multi function device, therefore allowed to draw aux power if at least one of the functions has this bit sets 9 phantom function enable ? rw. hardwired to 0b 8 extended tag field enable ? rw. hardwired to 0b 7:5 max payload size ? rw. slot option not implemented hardwired to 0. 4 enable relaxed ordering ? if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request reporting enable ? rw. enable error report. 2 fatal error reporting enable ? rw. enable error report. 1 non-fatal error reporting enable ? rw. enable error report. 0 correctable error reporting enable ? rw. enable error report.
intel ? 631xesb/632xesb i/o controller hub datasheet 865 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.36 pci express_dev_status ? pci express* device status register (bn:f4) offset address: ea?ebh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 25.4.37 pci express_link_cap ? pci express* link capability register (bn:f4) offset address: ec?efh attribute: ro, r/w default value: see description size: 16 bits bit description 15:6 reserved. 5 transaction pending ? ro. slot option not implemented hardwired to 0. 4 aux power detected ? ro. if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request detected ? r/wc. enable error report. 2 fatal error detected ? r/wc. enable error report. 1 non-fatal error detected ? r/wc. enable error report. 0 correctable error detected ? r/wc. enable error report. bit description 31:24 port number ? ro. the pci express* port number for the given pci express link. field is set in the link training phase. default to 0x0. 23:18 reserved. 17:15 l1 exit latency - indicates the exit latency from l1 to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h. default to 110b (32-64us). 14:12 l0s exit latency - indicates the exit latency from l0s to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h (two values for common pci express clock or separate pci express clock). default to 001b (64-128ns). 11:10 active state link pm support ? ro. indicates the level of active state power management supported in intel ? 6321esb i/o controller hub lan core. defined encodings are: 00b reserved 01b l0s entry supported 10b reserved 11b l0s and l1 supported this field is loaded from the eeprom pci express init configuration 3 word 1ah.default to 11b 9:4 max link width ? ro.indicates the max link width. intel ? 6321esb i/o controller hub lan controller can support by 1 and by 4-link width. the field is loaded from the eeprom pci express init configuration 3 word 1ah with a default value of 4 lanes. default to 00100b. 3:0 max link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b
866 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.4.38 pci express_link_cont ? pci express* link control register (bn:f4) offset address: f0?f1h attribute: r/w default value: 0000h size: 16 bits 25.4.39 pci express_link_status ? pci express* link status register (bn:f4) offset address: f2?f3h attribute: r/w default value: 1011h size: 16 bits bit description 15:8 reserved. 7 extended synch ? rw. this bit forces extended tx of fts ordered set in fts and extra ts2 at exit from l1 prior to enter l0. 6 common clock configuration ? rw. when set indicates that intel ? 6321esb i/o controller hub and the component at the other end of the link are operating with a common reference clock. a value of 0 indicates that they operating with an asynchronous clock. this parameter affects the l0s exit latencies. 5 retrain clock ? ro. not applicable for endpoint devices, hardwired to 0. 4 link disable ? ro. not applicable for endpoint devices, hardwired to 0. 3 read completion boundary ? rw. 2 reserved. 1:0 active state link pm control ? r/w. this field controls the active state pm supported on the link. link pm functionality is determined by the lowest common denominator of all functions. defined encodings are: 00b pm disabled 01b l0s entry supported 10b reserved 11b l0s and l1 supported bit description 15:13 reserved. 12 slot clock configuration ? when set, it indicates it uses the physical reference clock that the platform provides on the connector. this bit must be cleared uses an independent clock.default to be 1b. 11 link training ? ro. indicates that link training is in progress. 10 link training error ? ro. indicates that link training error has occurred. 9:4 negotiated link width ? ro. indicates the negotiated width of the link. 000001b = x1 000100b = x4 3:0 link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b
intel ? 631xesb/632xesb i/o controller hub datasheet 867 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5 uhci redirection controller configuration registers (bn:f5) table 25-10. uhci configuration register address map bn:f5) (sheet 1 of 2) offset mnemonic register name default type mandatory pci configuration registers 00?01h vid vendor identification 8086h ro 02?03h did device identification 1087h ro 04?05h pcicmd pci command 0000h ro, rw 06?07h pcists pci status 0010h ro, r/wc 08h rid revision identification see register description. ro 09h pi program interface 00h ro 0ah scc sub class code 03h ro 0bh bcc base class code 0c ro 0ch cls cache line size see register description. r/w 0dh pmlt primary master latency timer 00h r/w 0eh headtyp header type 00h ro bar registers for 64-bit addressing modes 10?13h uhci_mem_base_low uhci mem?mapped low base address 00000000h r/w, ro 14?17h uhci_mem_base_high uhci mem?mapped base address 00000000h r/w, ro 20?23h uhci_io_base uhci i/o?mapped base address 00000001h r/w, ro bar registers for 32-bit addressing modes 10?13h uhci_mem_base uhci mem?mapped base address 00000000h r/w, ro 20?23h uhci_io_base uhci i/o?mapped base address 00000001h r/w, ro 2c?2dh svid subsystem vendor identification 8086h ro 2e?2fh sid subsystem identification 0000h ro 34h cap_ptr capabilities pointer c8h ro 3ch int_ln interrupt line 00h r/w 3dh int_pn interrupt pin 04h ro 3eh min_gnt minimum grant 00h ro 3fh max_lat maximum latency 00h ro 60h usbrn usb release number 10h ro c0h usb_legsup usb interrupt mechanism 2000h ro, r/w pci power management registers c8h cap_id capability id 01h ro
868 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.1 vid ? vendor identification register (bn:f0/f1) offset address: 00?01h attribute: ro default value: 8086h size: 16 bits 25.5.2 did ? device identification register (bn:f5) offset address: 02?03h attribute: ro default value: 1087h size: 16 bits c9h nxt_ptr next item pointer d0h ro ca?cbh pm_cap power management capabilities see bit description ro cc?cdh pmcsr power management control/ status 0000h r/w, ro, r/ wc cf pcidata pci power management data 00h ro message signaled interrupt configuration registers d0h msi_cap_id msi capability id 05h ro d1h msi_nxt_ptr msi t next item pointer e0h ro d2-d3 msi_mcr msi control register 0080 r/w d4-d7h msi_mar_low msi message low address 00000000h r/w d8-db msi_mar_high msi message high address 00000000h r/w dc-dd msi_mdr message data register 0000 r/w pci express* configuration registers e0h pci express_cap_id pci express* capability identification register 10h ro e1h pci express_nxt_ptr pci express next item pointer 00h ro e2-e3 pci express_cap pci express capability 0011 ro e4-e7h pci express_dev_cap pci express device capability 00000000h ro e8-e9 pci express_dev_cont pci express device control 2810h r/w ea-eb pci express_dev_status pci express device status 0000h ro ec-ef pci express_link_cap pci express link capability see bit description ro f0-f1 pci express_link_cont pci express link control 0000h r/w f2-f3 pci express_link_status pci express link status 1011h ro table 25-10. uhci configuration register address map bn:f5) (sheet 2 of 2) offset mnemonic register name default type bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel. bit description 15:0 device id ? ro. this is a 16-bit value assigned to the intel ? 6321esb i/o controller hub integrated uhci redirection controller. if word 0ah bit 0 is set in the eeprom, the device id is loaded from the eeprom, word 110h/50h after the hardware reset. if not set, the default value is 1087h.
intel ? 631xesb/632xesb i/o controller hub datasheet 869 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.3 pcicmd ? pci command register (bn:f5) offset address: 04?05h attribute: ro, r/w default value: 0000h size: 16 bits 25.5.4 pcists ? pci status register (bn:f5) offset address: 06?07h attribute: ro, r/wc default value: 0010h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. bit description 15:11 reserved 10 interrupt disable ? r/w. 0 = enable. 1 = disables uhci redirection controller to assert its intd signal. the interrupt disable register bit is a read-write bit that controls the ability of a pci express device to generate a legacy interrupt message. when set, devices are prevented from generating legacy interrupt messages. 9 fast back to back enable (fbe) ? ro. hardwired to 0. the integrated uhci redirection controller will not run fast back-to-back pci cycles. 8 serr# enable (serr_en) ? r/w. 0 = disable. 1 = enable. allow serr# to be asserted. 7 wait cycle control (wcc) ? ro. hardwired to 0. not implemented. 6 parity error response (per) ? r/w. 0 = the uhci redirection controller will ignore pci parity errors. 1 = the integrated uhci redirection controller will take normal action when a pci parity error is detected and will enable generation of parity on esi. 5 palette snoop enable (pse) ? ro. hardwired to 0. not implemented. 4 memory write and invalidate enable (mwie) ? ro. hardwired to 0. not implemented. 3 special cycle monitoring (scm) ? ro. hardwired to 0. the ide redirection controller ignores special cycles. 2 bus master enable (bme) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller may function as a pci bus master. 1 memory space enable (mse) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller will respond to the memory space accesses. 0 i/o space enable (iose) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller will respond to the i/o space accesses.
870 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.5 rid ? revision identification register (bn:f5) offset address: 08h attribute: ro default value: see bit description size: 8 bits bit description 15 detected parity error (dpe) ? r/wc. 0 = parity error not detected. 1 = the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller has detected a parity error on the pci bus (will be set even if parity error response is disabled in the pci command register). 14 signaled system error (sse) ? r/wc. 0 = integrated uhci redirection controller has not asserted serr# 1 = the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller has asserted serr#. serr# can be routed to cause nmi, smi#, or interrupt. 13 master abort status ( rma) ? r/wc. 0 = master abort not generated 1 = the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller (as a pci master) has generated a master abort. 12 received target abort (rta) ? r/wc. 0 = target abort not received. 1 = the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller (as a pci master) has received a target abort. 11 signaled target abort (sta) ? r/wc. 0 = target abort not signaled. 1 = the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller (as a pci master) has signaled a target abort. 10:9 devsel timing ? ro. hardwired to 0. 8 data parity error detected (dped) ? r/wc. 0 = parity error not detected (conditions below are not met). 1 = all of the following three conditions have been met: 1. the uhci redirection controller is acting as bus master 2. the uhci redirection controller has asserted perr# (for reads) or detected perr# asserted (for writes) 3. the parity error response bit in the uhci redirection controller?s pci command register is set. 7 fast back to back capable (fb2bc) ? ro. hardwired to 0. the device does not accept fast back-to- back transactions. 6 reserved. 5 66 mhz capable (66mhz_cap) ? ro. hardwired to 0. not implemented. 4 capabilities list (cap_list) ? ro. indicates that a device implements extended capabilities. 0 = the eeprom indicates that the integrated uhci redirection controller does not support extended capabilities. 1 = the eeprom indicates that the integrated uhci redirection controller supports pci power management, message signaled interrupts, and the pci express extensions. 3 interrupt status (ints) ? ro. this bit indicates that an interru pt is pending. it is independent from the state of the interrupt enable bit in the command register. 2:0 reserved bit description 7:0 revision id (rid) ? ro. the default revision id of this device is 00h. the value of the rev id is a logic or between the default value and the value in the eeprom word 1eh. refer to ta b l e 2 - 3 3 or the intel ? 631xesb/632xesb i/o controller hub eds specification update for the value of the revision id register.
intel ? 631xesb/632xesb i/o controller hub datasheet 871 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.6 pi ? programming interface register (bn:f5) offset address: 09h attribute: ro default value: 00h size: 8 bits 25.5.7 scc ? sub class code register (bn:f5) offset address: 0ah attribute: ro default value: 03h size: 8 bits 25.5.8 bcc ? base-class code register (bn:f5) offset address: 0bh attribute: ro default value: 0ch size: 8 bits 25.5.9 cls ? cache line size register (bn:f5) offset address: 0ch attribute: r/w default value: see register desc. size: 8 bits 25.5.10 pmlt ? primary master latency timer register (bn:f5) offset address: 0dh attribute: r/w default value: 00h size: 8 bits 25.5.11 headtyp ? header type register (bn:f5) offset address: 0eh attribute: ro default value: 00h, 80h size: 8 bits bit description 7:0 programming interface(pi) ? ro. bit description 7:0 sub class code (scc) ? ro. this 8-bit value specifies the sub class of the device as an uhci redirection controller. bit description 7:0 base class code (bcc) ? ro. this 8-bit value specifies the base class of the device as a mass storage controller. bit description 7:0 cache line size(cls) ? r/w. implement for legacy compatibility purposes but has no impact on any pci express device functionality. loaded from eeprom 1ah. bit description 7:0 not used. hardwired to zero bit description 7 multi-function device (mfd) ? ro. hardwired to 0 to indicate a single function device, that is, if only a single lan function is active. 1 for multiple function 6:0 header type (htype) ? ro. this 7-bit field identifies the header layout of the configuration space as an ethernet controller.
872 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.12 base address registers (bn:f5) 64-bit addressing mode no eeprom or the bar32 eeprom bit set to 0 (word 0ah) 25.5.12.1 uhci_mem_base_low ? uhci memory-mapped base address low register (bn:f5) offset address: 10-13h attribute: r/w, ro default value: 00000000h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller requires one bar for memory mapping. software determines which bar (memory or i/ o) is used to access the uhci redirection controller?s csr registers. 25.5.12.2 uhci_mem_base_high ? uhci memory-mapped base address high register (bn:f5) offset address: 14?17h attribute: r/w, ro default value: 00000000h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller requires one bar for memory mapping. software determines which bar (memory or i/ o) is used to access the uhci redirection controller?s csr registers. 25.5.12.3 uhci_io_base ? uhci i/o-mapped base address register (bn:f5) offset address: 20?23h attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller requires one bar for memory mapping. software determines which bar (memory or i/ o) is used to access the uhci redirection controller?s csr registers. bit description 31:12 base address (mem_addr) ? r/w. this field contains the upper 20 bits of the base address provides 4 kb of memory-mapped space for the uhci function. 11:4 reserved 3 prefetchable (mem_pf) ? ro. hardwired to 0 to indicate that this is not a pre-fetchable memory- mapped address range. 2:1 type (mem_type) ? ro. hardwired to 10b to indicate the memory-mapped address range may be located anywhere in 64-bit address space. 0 memory-space indicator (mem_space) ? ro. hardwired to 0 to indicate that this base address maps to memory space. bit description 31:0 base address (mem_addr) ? r/w. this field contains the upper 32 bits of the base address provides 4 kb of memory-mapped space for the uhci function. bit description 31:5 base address (io_addr) ? r/w. this field provides 4 bytes of i/o-mapped address space for the uhci function. 4:1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space.
intel ? 631xesb/632xesb i/o controller hub datasheet 873 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 32-bit addressing mode 25.5.12.4 uhci_mem_base ? uhci memory-mapped base address register (bn:f5) offset address: 10-13h attribute: r/w, ro default value: 00000000h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller requires one bar for memory mapping. software determines which bar (memory or i/ o) is used to access the uhci redirection controller?s csr registers. 25.5.12.5 uhci_io_base ? uhci i/o-mapped base address register (bn:f5) offset address: 20-23h attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller requires one bar for memory mapping. software determines which bar (memory or i/ o) is used to access the uhci redirection controller?s csr registers. 25.5.13 svid ? subsystem vendor identification(bn:f5) offset address: 2c?2d attribute: ro default value: 8086h size: 16 bits bit description 31:12 base address (mem_addr) ? r/w. this field contains the upper 20 bits of the base address provides 4 kb of memory-mapped space for the uhci function. 11:4 reserved 3 prefetchable (mem_pf) ? ro. hardwired to 0 to indicate that this is not a pre-fetchable memory- mapped address range. 2:1 type (mem_type) ? ro. hardwired to 00b to indicate the memory-mapped address range may be located anywhere in 32-bit address space. 0 memory-space indicator (mem_space) ? ro. hardwired to 0 to indicate that this base address maps to memory space. bit description 31:5 base address (io_addr) ? r/w. this field provides 4 bytes of i/o-mapped address space for the uhci function. 4:1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space. bit description 15:0 subsystem vendor id (svid) ? ro. this value may be loaded automatically from the eeprom address 0ch upon power up or reset if the eeprom is present (and properly programmed) and if word 0ah bit 1 is set. a value of 0x8086 is default for this field upon power up if the eeprom does not respond or is not programmed.
874 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.14 sid ? subsystem identification (bn:f5) offset address: 2e?2fh attribute: ro default value: 0000h size: 16 bits 25.5.15 cap_ptr ? capabilities pointer (bn:f5) offset address: 34h attribute: ro default value: c8h size: 8 bits 25.5.16 int_ln ? interrupt line register (bn:f5) offset address: 3ch attribute: r/w default value: 00h size: 8 bits 25.5.17 int_pn ? interrupt pin register (bn:f5) offset address: 3dh attribute: ro default value: 04h size: 8 bits 25.5.18 min_gnt ? minimum grant register (bn:f5) offset address: 3eh attribute: ro default value: 00h size: 8 bits 25.5.19 max_lat ? maximum latency register (bn:f5) offset address: 3fh attribute: ro default value: 00h size: 8 bits bit description 15:0 subsystem id (sid) ? ro. this value may be loaded automatically from the eeprom address 113h/53h upon power up with a default value of 0x0000 if the eeprom is present (and properly programmed) and if word 0ah bit 1 is set. bit description 7:0 capabilities pointer (cap_ptr) ? ro. hardwired to c8h to indicate the offset within configuration space for the location of the power management registers. bit description 7:0 interrupt line (int_ln) ? r/w. this field identifies the system interrupt line to which the uhci redirection controller?s pci interrupt request pin (as defined in the interrupt pin register) is routed. bit description 7:0 interrupt pin (int_pn) ? ro. uhci function - a value of 0x1 / 0x2 / 0x3 / 0x4 indicates that this function implements legacy interrupt on inta / intb / intc / intd respectively. loaded from eeprom word 0x6b/0x12b. bit description 7:0 minimum grant (min_gnt) ? ro. not used, hardwired to 00h. bit description 7:0 maximum latency (max_lat) ? ro. not used, hardwired to 00h.
intel ? 631xesb/632xesb i/o controller hub datasheet 875 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.20 usb_relnum ? usb release number (bn:f5) offset address: 60h attribute: ro default value: 10h size: 8 bits 25.5.21 usb_legsup ? usb interrupt mechanism(bn:f5) offset address: c0h attribute: r/w,ro default value: 2000h size: 16 bits note: the command register indicates the command to be executed by the serial bus host controller. 25.5.22 cap_id ? capability identification register (bn:f5) offset address: c8h attribute: ro default value: 01h size: 8 bits 25.5.23 nxt_ptr ? next item pointer (bn:f5) offset address: c9h attribute: ro default value: d0h size: 8 bits bit description 7:0 serial bus release number ? ro. hardwired to 10h to indicates compliance with usb 1.0 spec. bit description 15:14 reserved 13 usbpirqen ? r/w. this bit is used to prevent the usb controller from generating an interrupt due to transactions on its ports. note that, when disabled, it will probably be configured to generate an smi using bit 4 of this register. default to 1 fo r compatibility with older usb software. mapped to uhci_int[5] 0 = disable 1 = enable. default to 1 12 smibyusb - ro. this bit indicates if an interrupt event occurred from this controller. the interrupt from the controller is taken before the enable in bit 13 has any effect to create this read-only bit. note that even if the corresponding enable bit is not set in bit 4, this bit may still be active. it is up to the smm code to use the enable bit to determine the exact cause of the smi#. software should clear the interrupts via the usb controllers. writing a 1 to this bit will have no effect. mapped to uhci_int[6] 1 = event occurred. 0 = no event. default to 0 11:5 reserved 4 usbsmien - r/w, smi on usb irq enable mapped to uhci_int[4] 0 = disable 1 = enable. usb interrupt will cause an smi event. 3:0 reserved bit description 7:0 capability id (cap_id) ? ro. hardwired to 01h to indicate that the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller supports pci power management. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to d0h to indicate that power management is the last item in the capabilities list.
876 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.24 pm_cap ? power management capabilities (bn:f5) offset address: ca?cbh attribute: ro default value: see bit description size: 16 bits 25.5.25 pmcsr ? power management control/status register (bn:f5) offset address: cc?cdh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits bit description 15:11 pme support (pme_sup) ? ro. this 5-bit field indicates the power states in which the uhci redirection controller may assert pme#. the default value depends on eeprom word 0ah. 00000b = no pme at all states. 01001b = pme at d0 and d3 hot 11001b = pme at d0, d3 hot and d3 cold 10:9 hardwired to '0'. 8:6 auxiliary current (aux_cur) ? ro. hardwired to 000b to indicate that the uhci redirection controller implements the data registers. the auxiliary power consumption is the same as the current consumption reported in the d3 state in the data register. 5 device specific initialization (dsi) ? ro. hardwired to 1 to indicate that special initialization of this function is required (beyond the standard pci configuration header) before the generic class device driver is able to use it. dsi is required for the uhci redirection controller after d3-to-d0 reset. 4 reserved 3 pme clock (pme_clk) ? ro. hardwired to 0 to indicate that the uhci redirection controller does not require a clock to generate a power management event. 2:0 version (ver) ? ro. hardwired to 010b to indicate that the uhci redirection controller complies with of the pci power management specification, revision 1.1. bit description 15 pme status (pme_stat) ? r/wc. 0 = software clears this bit by writing a 1 to it. this also deasserts the pme# signal and clears the pme status bit in the power management driver register. when the pme# signal is enabled, the pme# signal reflects the state of the pme status bit. 1 = set upon occurrence of a wakeup event, independent of the state of the pme enable bit. 14:13 data scale (dscale) ? ro. this field indicates the data register scaling factor. it equals 10b for all supported registers: 0,3,4,7 and 8, as selected by the ?data select? field. 12:9 data select (dsel) ? r/w. this field is used to select which data is reported through the data register and data scale field. 8 pme enable (pme_en) ? r/w. this bit enables the intel ? 6321esb i/o controller hub?s integrated uhci redirection controller to assert pme#. 0 = the device will not assert pme#. 1 = enable pme# assertion when pme status is set. 7:2 reserved 1:0 power state (pwr_st) ? r/w. this 2-bit field is used to determine the current power state of the integrated uhci redirection controller, and to put it into a new power state. the definition of the field values is as follows: 00 = d0 01/10 = reserved 11 = d3
intel ? 631xesb/632xesb i/o controller hub datasheet 877 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.26 pcidata ? pci power mana gement data register (bn:f5) offset address: cfh attribute: ro default value: 00h size: 8 bits this optional register is used to report power consumption and heat dissipation. reported register is controlled by the data_select field in the pmcsr, and the power scale is reported in the data_scale field in the pmcsr. the data of this field is loaded from the eeprom if pm is enabled in the eeprom or with a default value of 0x00 otherwise. the values for intel ? 6321esb i/o controller hub uhci redirection controller functions is shown in table 25-11 . 25.5.27 msi_cap_id ? capability identification register (bn:f5) offset address: d0h attribute: ro default value: 05h size: 8 bits 25.5.28 msi_nxt_ptr ? next item pointer (bn:f5) offset address: d1h attribute: ro default value: e0h size: 8 bits 25.5.29 msi_mcr ? message control register (bn:f5) offset address: d2?d3h attribute: ro default value: 0080 size: 16 bits bit description 7:0 power management data (pwr_mgt) ? ro. state dependent power consumption and heat dissipation data. table 25-11. data register structure function d0 (consume/ dissipate) d3 (consume/ dissipate) common data_scale data_select (0x0 / 0x4) (0x3 / 0x7) (0x8) uhci redirection controller eep addr 119h/59h eep addr 11ah/5ah eep addr 22h 10b bit description 7:0 capability id (cap_id) ? ro. hardwired to 05h to indicate that the linked list item as being the message signaled interrupt registers. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to e0h to indicate that pci express capability is the next item in the capability list. bit description 15:11 reserved. 7 64 support (64_sup) ? ro. hardwired to 1 to indicate that the uhci redirection controller is capable of generating 64 bit message addresses.
878 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.30 msi_mar_low ? message address low register (bn:f5) offset address: d4?d7h attribute: ro, r/w, r/wc default value: 00000000h size: 32 bits 25.5.31 msi_mar_high ? message address high register (bn:f5) offset address: d8?dbh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 25.5.32 msi_mdr ? message data register (bn:f5) offset address: dc?ddh attribute: r/w default value: 0000h size: 16 bits 25.5.33 pci express_cap_id ? pci express* capability identification register (bn:f5) offset address: e0h attribute: ro default value: 10h size: 8 bits 6:4 multiple message enable(mm_enable) ? ro. hardwired to 000b to indicate that the uhci redirection controller supports single message per function. 3:1 multiple message capable(mm_cap) ? ro. hardwired to 000b to indicate that the uhci redirection controller capable of single requested message per function. 0 msi enable(msi_enable) ? r/w. if 1, the uhci redirection controller will generate msi for interrupt assertion instead of intx signaling. bit description bit description 7:2 message address low(msg_addr_low) ? r/w. written by the system to indicate the lower 32 bits of the address to use for the msi memory write transaction. the lower two bits will always return 0 regardless of the write operation. bit description 31:0 message address high(msg_addr_high) ? r/w. this field contains the upper 32 bits of the address to use for the msi memory write transaction. bit description 15:0 message data(msg_data) ? r/w. written by the system to indicate the lower 16 bits of the data written in the msi memory write dword transaction. the upper 16 bits of the transaction are written as 0 bit description 7:0 capability id (cap_id) ? ro. hardwired to 10h to indicate that the linked list item as being the pci express capability registers.
intel ? 631xesb/632xesb i/o controller hub datasheet 879 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.34 pci express_nxt_ptr ? pci express* next item pointer (bn:f5) offset address: e1h attribute: ro default value: 00h size: 8 bits 25.5.35 pci express_cap ? pci express* capability register (bn:f5) offset address: e2?e3h attribute: ro default value: 0011 size: 16 bits 25.5.36 pci express_dev_cap ? pci express* device capability register (bn:f5) offset address: e4?e7h attribute: ro, r/w, r/wc default value: 00000000h size: 32 bits bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to 00h to indicate that it is the last item in the capability linked list. bit description 15:14 reserved. 13:9 interrupt message number (int_msg_num) ? ro. multiple msi per function is not supported. hardwired to 00000b 8 slot implemented ? ro. slot option not implemented hardwired to 0. 7:4 device/port type ? ro. indicates the type of pci express functions. hardwired to 0001b 3:0 capability version(cap_version) ? ro. indicates the pci express capability structure version number 0001b. bit description 31:28 reserved. 27:26 slot power limit scale ? ro. used in upstream port only. hardwired to 00b. 25:18 slot power limit value ? ro. used in upstream port only. hardwired to 00b 17:15 reserved. 14 power indicator present ? ro. hardwired to 0b 13 attention indicator present ? ro. hardwired to 0b 12 attention button present ? ro. hardwired to 0b 11:9 endpoint l1 acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan core can withstand due to the transition from l1 state to the l0 state. all functions share the same value loaded from the eeprom pci express* init configuration 1 word 18h 8:6 endpoint l0s acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan core can withstand due to the transition from l0s state to the l0 state. all functions share the same value loaded from the eeprom pci express init configuration 1 word 18h. 5 extended tag field supported ? ro. indicates the pci express capability structure version number 0001b. 4:3 phantom function supported ? ro. indicates the type of pci express functions. hardwired to 0001b 2:0 max payload size supported ? ro. indicates the type of pci express functions. hardwired to 0001b
880 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.37 pci express_dev_cont ? pci express* device control register (bn:f5) offset address: e8?e9h attribute: ro, r/w default value: 2810h size: 16 bits 25.5.38 pci express_dev_status ? pci express* device status register (bn:f5) offset address: ea?ebh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits bit description 15 reserved. 14:12 max read request size - this field sets maximum read request size for the device as a requester. the default value is 010b (512b) for the lan devices. 11 enable no snoop ? r/w. snoop is gated by nonsnoop bits in the gcr register in the csr space. default is 1b 10 auxiliary power pm enable - when set enables the device to draw aux power independent of pme aux power. intel ? 6321esb i/o controller hub lan core is a multi function device, therefore allowed to draw aux power if at least one of the functions has this bit sets 9 phantom function enable ? rw. hardwired to 0b 8 extended tag field enable ? rw. hardwired to 0b 7:5 max payload size ? rw. slot option not implemented hardwired to 0. 4 enable relaxed ordering ? if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request reporting enable ? rw. enable error report. 2 fatal error reporting enable ? rw. enable error report. 1 non-fatal error reporting enable ? rw. enable error report. 0 correctable error reporting enable ? rw. enable error report. bit description 15:6 reserved. 5 transaction pending ? ro. slot option not implemented hardwired to 0. 4 aux power detected ? ro. if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request detected ? r/wc. enable error report. 2 fatal error detected ? r/wc. enable error report. 1 non-fatal error detected ? r/wc. enable error report. 0 correctable error detected ? r/wc. enable error report.
intel ? 631xesb/632xesb i/o controller hub datasheet 881 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.39 pci express_link_cap ? pci express* link capability register (bn:f5) offset address: ec?efh attribute: ro, r/w default value: see description size: 16 bits 25.5.40 pci express_link_cont ? pci express* link control register (bn:f5) offset address: f0?f1h attribute: r/w default value: 0000h size: 16 bits bit description 31:24 port number ? ro. the pci express* port number for the given pci express link. field is set in the link training phase. default to 0x0. 23:18 reserved. 17:15 l1 exit latency - indicates the exit latency from l1 to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h. default to 110b (32-64us). 14:12 l0s exit latency - indicates the exit latency from l0s to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h (two values for common pci express clock or separate pci express clock). default to 001b (64-128ns). 11:10 active state link pm support ? ro. indicates the level of active state power management supported in intel ? 6321esb i/o controller hub lan core. defined encodings are: 00b reserved 01b l0s entry supported 10b reserved 11b l0s and l1 supported this field is loaded from the eeprom pci express init configuration 3 word 1ah.default to 11b 9:4 max link width ? ro. indicates the max link width. intel ? 6321esb i/o controller hub lan controller can support by 1 and by 4-link width. the field is loaded from the eeprom pci express init configuration 3 word 1ah with a default value of 4 lanes. default to 00100b. 3:0 max link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b bit description 15:8 reserved. 7 extended synch ? rw. this bit forces extended tx of fts ordered set in fts and extra ts2 at exit from l1 prior to enter l0. 6 common clock configuration ? rw. when set indicates that intel ? 6321esb i/o controller hub and the component at the other end of the link are operating with a common reference clock. a value of 0 indicates that they operating with an asynchronous clock. this parameter affects the l0s exit latencies. 5 retrain clock ? ro. not applicable for endpoint devices, hardwired to 0. 4 link disable ? ro. not applicable for endpoint devices, hardwired to 0. 3 read completion boundary ? rw. 2 reserved. 1:0 active state link pm control ? r/w. this field controls the active state pm supported on the link. link pm functionality is determined by the lowest common denominator of all functions. defined encodings are: 00b pm disabled 01b l0s entry supported 10b reserved 11b l0s and l1 supported
882 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.5.41 pci express_link_status ? pci express* link status register (bn:f5) offset address: f2?f3h attribute: r/w default value: 1011h size: 16 bits 25.6 bt controller configuration registers (bn:f7) bit description 15:13 reserved. 12 slot clock configuration ? when set, it indicates it uses the physical reference clock that the platform provides on the connector. this bit must be cleared uses an independent clock. default to be 1b. 11 link training ? ro. indicates that link training is in progress. 10 link training error ? ro. indicates that link training error has occurred. 9:4 negotiated link width ? ro. indicates the negotiated width of the link. 000001b = x1 000100b = x4 3:0 link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b table 25-12. bt pci configuration register address map bn:f7) (sheet 1 of 2) offset mnemonic register name default type mandatory pci configuration registers 00?01h vid vendor identification 8086h ro 02?03h did device identification 1089h ro 04?05h pcicmd pci command 0000h ro, rw 06?07h pcists pci status 0010h ro, r/wc 08h rid revision identification see register description. ro 09h pi program interface 02h ro 0ah scc sub class code 07h ro 0bh bcc base class code 0c ro 0ch cls cache line size see register description. r/w 0dh pmlt primary master latency timer 00h r/w 0eh headtyp header type 00h ro bar registers for 64-bit addressing modes 10?13h bt_mem_base_low bt mem?mapped low base address 00000002h r/w, ro 14?17h bt_mem_base_high bt mem?mapped base address 00000000h r/w, ro 18?1bh bt_io_base bt i/o?mapped base address 00000001h r/w, ro bar registers for 32-bit addressing modes 10?13h bt_mem_base bt mem?mapped base address 00000000h r/w, ro 14?17h bt_io_base bt i/o?mapped base address 00000001h r/w, ro 2c?2dh svid subsystem vendor identification 8086h ro
intel ? 631xesb/632xesb i/o controller hub datasheet 883 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.1 vid ? vendor identification register (bn:f0/f1) offset address: 00?01h attribute: ro default value: 8086h size: 16 bits 2e?2fh sid subsystem identification 0000h ro 34h cap_ptr capabilities pointer c8h ro 3ch int_ln interrupt line 00h r/w 3dh int_pn interrupt pin 03h ro 3eh min_gnt minimum grant 00h ro 3fh max_lat maximum latency 00h ro pci power management registers c8h cap_id capability id 01h ro c9h nxt_ptr next item pointer d0h ro ca?cbh pm_cap power management capabilities see bit description ro cc?cdh pmcsr power management control/status 0000h r/w, ro, r/ wc cf pcidata pci power management data 00h ro message signaled interrupt configuration registers d0h msi_cap_id msi capability id 05h ro d1h msi_nxt_ptr msi t next item pointer e0h ro d2-d3 msi_mcr msi control register 0080 r/w d4-d7h msi_mar_low msi message low address 00000000h r/w d8-db msi_mar_high msi message high address 00000000h r/w dc-dd msi_mdr message data register 0000 r/w pci express configuration registers e0h pci express_cap_id pci express capability identification register 10h ro e1h pci express_nxt_ptr pci express next item pointer 00h ro e2-e3 pci express_cap pci express capability 0011 ro e4-e7h pci express_dev_cap pci express device capability 00000cc1h ro e8-e9 pci express_dev_cont pci express device control 2810h r/w ea-eb pci express_dev_status pci express device status 0000h ro ec-ef pci express_link_cap pci express link capability see bit description ro f0-f1 pci express_link_cont pci express link control 0000h r/w f2-f3 pci express_link_status pci express link status 1011h ro table 25-12. bt pci configuration register address map bn:f7) (sheet 2 of 2) offset mnemonic register name default type bit description 15:0 vendor id ? ro. this is a 16-bit value assigned to intel.
884 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.2 did ? device identification register (bn:f7) offset address: 02?03h attribute: ro default value: 1089h size: 16 bits 25.6.3 pcicmd ? pci command register (bn:f7) offset address: 04?05h attribute: ro, r/w default value: 0000h size: 16 bits bit description 15:0 device id ? ro. this is a 16-bit value assigned to the intel ? 6321esb i/o controller hub integrated bt controller. if word 0ah bit 0 is set in the eeprom, the device id is loaded from the eeprom, word 112h/52h after the hardware reset. if not set, the default value is 1089h. bit description 15:11 reserved 10 interrupt disable ? r/w. 0 = enable. 1 = disables bt controller to assert its inta signal. the interrupt disable register bit is a read-write bit that controls the ability of a pci express device to generate a legacy interrupt message. when set, devices are prevented from generating legacy interrupt messages. 9 fast back to back enable (fbe) ? ro. hardwired to 0. the integrated bt controller will not run fast back-to-back pci cycles. 8 serr# enable (serr_en) ? r/w. 0 = disable. 1 = enable. allow serr# to be asserted. 7 wait cycle control (wcc) ? ro. hardwired to 0. not implemented. 6 parity error response (per) ? r/w. 0 = the bt controller will ignore pci parity errors. 1 = the integrated bt controller will take normal action when a pci parity error is detected and will enable generation of parity on esi. 5 palette snoop enable (pse) ? ro. hardwired to 0. not implemented. 4 memory write and invalidate enable (mwie) ? ro. hardwired to 0. not implemented. 3 special cycle monitoring (scm) ? ro. hardwired to 0. the bt controller ignores special cycles. 2 bus master enable (bme) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated bt controller may function as a pci bus master. 1 memory space enable (mse) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated bt controller will respond to the memory space accesses. 0 i/o space enable (iose) ? r/w. 0 = disable. 1 = enable. the intel ? 6321esb i/o controller hub?s integrated bt controller will respond to the i/ o space accesses.
intel ? 631xesb/632xesb i/o controller hub datasheet 885 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.4 pcists ? pci status register (bn:f7) offset address: 06?07h attribute: ro, r/wc default value: 0010h size: 16 bits note: for the writable bits, software must write a 1 to clear bits that are set. writing a 0 to the bit has no effect. bit description 15 detected parity error (dpe) ? r/wc. 0 = parity error not detected. 1 = the intel ? 6321esb i/o controller hub?s integrated bt controller has detected a parity error on the pci bus (will be set even if parity error response is disabled in the pci command register). 14 signaled system error (sse) ? r/wc. 0 = integrated bt controller has not asserted serr# 1 = the intel ? 6321esb i/o controller hub?s integrated bt controller has asserted serr#. serr# can be routed to cause nmi, smi#, or interrupt. 13 master abort status ( rma) ? r/wc. 0 = master abort not generated 1 = the intel ? 6321esb i/o controller hub?s integrated bt controller (as a pci master) has generated a master abort. 12 received target abort (rta) ? r/wc. 0 = target abort not received. 1 = the intel ? 6321esb i/o controller hub?s integrated bt controller (as a pci master) has received a target abort. 11 signaled target abort (sta) ? r/wc. 0 = target abort not signaled. 1 = the intel ? 6321esb i/o controller hub?s integrated bt controller (as a pci master) has signaled a target abort. 10:9 devsel timing ? ro. hardwired to 0. 8 data parity error detected (dped) ? r/wc. 0 = parity error not detected (conditions below are not met). 1 = all of the following three conditions have been met: 1. the bt controller is acting as bus master 2. the bt controller has asserted perr# (for reads) or detected perr# asserted (for writes) 3. the parity error response bit in the bt controller?s pci command register is set. 7 fast back to back capable (fb2bc) ? ro. hardwired to 0. the device does not accept fast back-to- back transactions. 6 reserved. 5 66 mhz capable (66mhz_cap) ? ro. hardwired to 0. not implemented. 4 capabilities list (cap_list) ? ro. indicates that a device implements extended capabilities. 0 = the eeprom indicates that the integrated bt controller does not support extended capabilities. 1 = the eeprom indicates that the integrated bt controller supports pci power management, message signaled interrupts, and the pci express extensions. 3 interrupt status (ints) ? ro. this bit indicates that an interr upt is pending. it is independent from the state of the interrupt enable bit in the command register. 2:0 reserved
886 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.5 rid ? revision identification register (bn:f7) offset address: 08h attribute: ro default value: see bit description size: 8 bits 25.6.6 pi ? programming interface register (bn:f7) offset address: 09h attribute: ro default value: 02h size: 8 bits 25.6.7 scc ? sub class code register (bn:f7) offset address: 0ah attribute: ro default value: 07h size: 8 bits 25.6.8 bcc ? base-class code register (bn:f7) offset address: 0bh attribute: ro default value: 0ch size: 8 bits 25.6.9 cls ? cache line size register (bn:f7) offset address: 0ch attribute: r/w default value: see register desc. size: 8 bits 25.6.10 pmlt ? primary master latency timer register (bn:f7) offset address: 0dh attribute: r/w default value: 00h size: 8 bits bit description 7:0 revision id (rid) ? ro. the default revision id of this device is 00h. the value of the rev id is a logic or between the default value and the value in the eeprom word 1eh. refer to ta b l e 2 - 3 3 or the intel ? 6321esb i/o controller hub eds specification update for the value of the revision id register. bit description 7:0 programming interface(pi) ? ro. this field is loaded from eeprom, word 57h/117h. bit description 7:0 sub class code (scc) ? ro. this 8-bit value specifies the sub class of the device as an bt controller. this field is loaded from eeprom, word 57h/117h. bit description 7:0 base class code (bcc) ? ro. this 8-bit value specifies the base class of the device as a mass storage controller. this field is loaded from eeprom, word 58/118h. bit description 7:0 cache line size(cls) ? r/w. implement for legacy compatibility purposes but has no impact on any pci express device functionality. loaded from eeprom 1ah. bit description 7:0 not used. hardwired to zero
intel ? 631xesb/632xesb i/o controller hub datasheet 887 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.11 headtyp ? header type register (bn:f7) offset address: 0eh attribute: ro default value: 00h, 80h size: 8 bits 25.6.12 base address registers (bn:f7) 64-bit addressing mode 25.6.12.1 bt_mem_base_low ? bt memory-mapped base address low register (bn:f7) offset address: 10-13h attribute: r/w, ro default value: 00000002h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated bt controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the bt controller?s csr registers. 25.6.12.2 bt_mem_base_high ? bt memory-mapped base address high register (bn:f7) offset address: 14?17h attribute: r/w, ro default value: 00000000h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated bt controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the bt controller?s csr registers. bit description 7 multi-function device (mfd) ? ro. hardwired to 0 to indicate a single function device, that is, if only a single lan function is active. 1 for multiple function 6:0 header type (htype) ? ro. this 7-bit field identifies the header layout of the configuration space as an ethernet controller. bit description 31:12 base address (mem_addr) ? r/w. this field contains the upper 20 bits of the base address provides 4 kb of memory-mapped space for the ipmi/kcs function. 11:4 reserved 3 prefetchable (mem_pf) ? ro. hardwired to 0 to indicate that this is not a pre-fetchable memory- mapped address range. 2:1 type (mem_type) ? ro. hardwired to 01b to indicate the memory-mapped address range may be located anywhere in 64-bit address space. 0 memory-space indicator (mem_space) ? ro. hardwired to 0 to indicate that this base address maps to memory space. bit description 31:0 base address (mem_addr) ? r/w. this field contains the upper 32 bits of the base address provides 4 kb of memory-mapped space for the bt function.
888 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.12.3 bt_io_base ? bt i/o-mapped base address register (bn:f7) offset address: 18?1bh attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated bt controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the bt controller?s csr registers. 32-bit addressing mode 25.6.12.4 bt_mem_base ? bt memory-mapped base address register (bn:f7) offset address: 10-13h attribute: r/w, ro default value: 00000000h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated bt controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the bt controller?s csr registers. 25.6.12.4.1 bt_io_base ? bt i/o-mapped base address register (bn:f7) offset address: 14-17h attribute: r/w, ro default value: 00000001h size: 32 bits note: the intel ? 6321esb i/o controller hub?s integrated bt controller requires one bar for memory mapping. software determines which bar (memory or i/o) is used to access the bt controller?s csr registers. bit description 31:3 base address (io_addr) ? r/w. this field provides 4 bytes of i/o-mapped address space for the bt function. 2:1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space. bit description 31:12 base address (mem_addr) ? r/w. this field contains the upper 20 bits of the base address provides 4 kb of memory-mapped space for the bt function. 11:4 reserved 3 prefetchable (mem_pf) ? ro. hardwired to 0 to indicate that this is not a pre-fetchable memory- mapped address range. 2:1 type (mem_type) ? ro. hardwired to 00b to indicate the memory-mapped address range may be located anywhere in 32-bit address space. 0 memory-space indicator (mem_space) ? ro. hardwired to 0 to indicate that this base address maps to memory space. bit description 31:2 base address (io_addr) ? r/w. this field provides 4 bytes of i/o-mapped address space for the bt function. 1 reserved 0 i/o space indicator (io_space) ? ro. hardwired to 1 to indicate that this base address maps to i/o space.
intel ? 631xesb/632xesb i/o controller hub datasheet 889 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.13 svid ? subsystem vendor identification(bn:f7) offset address: 2c?2d attribute: ro default value: 8086h size: 16 bits 25.6.14 sid ? subsystem identification (bn:f7) offset address: 2e?2fh attribute: ro default value: 0000h size: 16 bits 25.6.15 cap_ptr ? capabilities pointer (bn:f7) offset address: 34h attribute: ro default value: c8h size: 8 bits 25.6.16 int_ln ? interrupt line register (bn:f7) offset address: 3ch attribute: r/w default value: 00h size: 8 bits 25.6.17 int_pn ? interrupt pin register (bn:f7) offset address: 3dh attribute: ro default value: 03h size: 8 bits bit description 15:0 subsystem vendor id (svid) ? ro. this value may be loaded automatically from the eeprom address 0ch upon power up or reset if the eeprom is present (and properly programmed) and if word 0ah bit 1 is set. a value of 0x8086 is default for this field upon power up if the eeprom does not respond or is not programmed. bit description 15:0 subsystem id (sid) ? ro. this value may be loaded automatically from th e eeprom address 115h/55h upon power up with a default value of 0x0000 if the eeprom is present (and properly programmed) and if word 0ah bit 1 is set. bit description 7:0 capabilities pointer (cap_ptr) ? ro. hardwired to c8h to indicate the offset within configuration space for the location of the power management registers. bit description 7:0 interrupt line (int_ln) ? r/w. this field identifies the system interrupt line to which the bt controller?s pci interrupt request pin (as define d in the interrupt pin register) is routed. bit description 7:0 interrupt pin (int_pn) ? ro. bt function - a value of 0x1 / 0x2 / 0x3 / 0x4 indicates that this function implements legacy interrupt on inta / intb / intc / intd respectively. loaded from eeprom word 0x6b/0x12b.
890 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.18 min_gnt ? minimum grant register (bn:f7) offset address: 3eh attribute: ro default value: 00h size: 8 bits 25.6.19 max_lat ? maximum latency register (bn:f7) offset address: 3fh attribute: ro default value: 00h size: 8 bits 25.6.20 cap_id ? capability identification register (bn:f7) offset address: c8h attribute: ro default value: 01h size: 8 bits 25.6.21 nxt_ptr ? next item pointer (bn:f7) offset address: c9h attribute: ro default value: d0h size: 8 bits 25.6.22 pm_cap ? power management capabilities (bn:f7) offset address: ca?cbh attribute: ro default value: see bit description size: 16 bits bit description 7:0 minimum grant (min_gnt) ? ro. not used, hardwired to 00h. bit description 7:0 maximum latency (max_lat) ? ro. not used, hardwired to 00h. bit description 7:0 capability id (cap_id) ? ro. hardwired to 01h to indicate that the intel ? 6321esb i/o controller hub?s integrated bt controller supports pci power management. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to d0h to indicate that power management is the last item in the capabilities list. bit description 15:11 pme support (pme_sup) ? ro. this 5-bit field indicates the power states in which the bt controller may assert pme#. the default value depends on eeprom word 0ah. 00000b = no pme at all states. 01001b = pme at d0 and d3 hot 11001b = pme at d0, d3 hot and d3 cold 10:9 hardwired to '0'. 8:6 auxiliary current (aux_cur) ? ro. hardwired to 000b to indicate that the bt controller implements the data registers. the auxiliary power consumption is the same as the current consumption reported in the d3 state in the data register. 5 device specific initialization (dsi) ? ro. hardwired to 1 to indicate that special initialization of this function is required (beyond the standard pci configuration header) before the generic class device driver is able to use it. dsi is required for the bt controller after d3-to-d0 reset.
intel ? 631xesb/632xesb i/o controller hub datasheet 891 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.23 pmcsr ? power management control/status register (bn:f7) offset address: cc?cdh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 25.6.24 pcidata ? pci power mana gement data register (bn:f7) offset address: cfh attribute: ro default value: 00h size: 8 bits this optional register is used to report power consumption and heat dissipation. reported register is controlled by the data_select field in the pmcsr, and the power scale is reported in the data_scale field in the pmcsr. the data of this field is loaded from the eeprom if pm is enabled in the eeprom or with a default value of 0x00 otherwise. the values for intel ? 6321esb i/o controller hub uhci redirection controller functions is shown in table 25-13 . 4 reserved 3 pme clock (pme_clk) ? ro. hardwired to 0 to indicate that the bt controller does not require a clock to generate a power management event. 2:0 version (ver) ? ro. hardwired to 010b to indicate that the bt controller complies with of the pci power management specification, revision 1.1. bit description bit description 15 pme status (pme_stat) ? r/wc. 0 = software clears this bit by writing a 1 to it. this also deasserts the pme# signal and clears the pme status bit in the power management driver register. when the pme# signal is enabled, the pme# signal reflects the state of the pme status bit. 1 = set upon occurrence of a wakeup event, independent of the state of the pme enable bit. 14:13 data scale (dscale) ? ro. this field indicates the data register scaling factor. it equals 10b for all supported registers: 0,3,4,7 and 8, as selected by the ?data select? field. 12:9 data select (dsel) ? r/w. this field is used to select which data is reported through the data register and data scale field. 8 pme enable (pme_en) ? r/w. this bit enables the intel ? 6321esb i/o controller hub?s integrated bt controller to assert pme#. 0 = the device will not assert pme#. 1 = enable pme# assertion when pme status is set. 7:2 reserved 1:0 power state (pwr_st) ? r/w. this 2-bit field is used to determine the current power state of the integrated bt controller, and to put it into a new power state. the definition of the field values is as follows: 00 = d0 01/10 = reserved 11 = d3 bit description 7:0 power management data (pwr_mgt) ? ro. state dependent power consumption and heat dissipation data.
892 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.25 msi_cap_id ? capability identification register (bn:f7) offset address: d0h attribute: ro default value: 05h size: 8 bits 25.6.26 msi_nxt_ptr ? next item pointer (bn:f7) offset address: d1h attribute: ro default value: e0h size: 8 bits 25.6.27 msi_mcr ? message control register (bn:f7) offset address: d2?d3h attribute: ro default value: 0080 size: 16 bits 25.6.28 msi_mar_low ? message address low register (bn:f7) offset address: d4?d7h attribute: ro, r/w, r/wc default value: 00000000h size: 32 bits table 25-13. data register structure function d0 (consume/ dissipate) d3 (consume/ dissipate) common data_scale data_select (0x0 / 0x4) (0x3 / 0x7) (0x8) bt function eep addr 119/59h eep addr 11a/5ah eep addr 22h 10b bit description 7:0 capability id (cap_id) ? ro. hardwired to 05h to indicate that the linked list item as being the message signaled interrupt registers. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to e0h to indicate that pci express capability is the next item in the capability list. bit description 15:11 reserved. 7 64 support (64_sup) ? ro. hardwired to 1 to indicate that the bt controller is capable of generating 64 bit message addresses. 6:4 multiple message enable(mm_enable) ? ro. hardwired to 000b to indicate that the bt controller supports single message per function. 3:1 multiple message capable(mm_cap) ? ro. hardwired to 000b to indicate that the bt controller capable of single requested message per function. 0 msi enable(msi_enable) ? r/w. if 1, the bt controller will generate msi for interrupt assertion instead of intx signaling. bit description 7:2 message address low(msg_addr_low) ? r/w. written by the system to indicate the lower 32 bits of the address to use for the msi memory write transaction. the lower two bits will always return 0 regardless of the write operation.
intel ? 631xesb/632xesb i/o controller hub datasheet 893 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.29 msi_mar_high ? message a ddress high register (bn:f7) offset address: d8?dbh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 25.6.30 msi_mdr ? message data register (bn:f7) offset address: dc?ddh attribute: r/w default value: 0000h size: 16 bits 25.6.31 pci express_cap_id ? pci express* capability identification register (bn:f7) offset address: e0h attribute: ro default value: 10h size: 8 bits 25.6.32 pci express_nxt_ptr ? pci express* next item pointer (bn:f7) offset address: e1h attribute: ro default value: 00h size: 8 bits 25.6.33 pci express_cap ? pci express* capability register (bn:f7) offset address: e2?e3h attribute: ro default value: 0011 size: 16 bits bit description 31:0 message address high(msg_addr_high) ? r/w. this field contains the upper 32 bits of the address to use for the msi memory write transaction. bit description 15:0 message data(msg_data) ? r/w. written by the system to indicate the lower 16 bits of the data written in the msi memory write dword transaction. the upper 16 bits of the transaction are written as 0 bit description 7:0 capability id (cap_id) ? ro. hardwired to 10h to indicate that the linked list item as being the pci express* capability registers. bit description 7:0 next item pointer (nxt_ptr) ? ro. hardwired to 00h to indicate that it is the last item in the capability linked list. bit description 15:14 reserved. 13:9 interrupt message number (int_msg_num) ? ro. multiple msi per function is not supported. hardwired to 00000b 8 slot implemented ? ro. slot option not implemented hardwired to 0. 7:4 device/port type ? ro. indicates the type of pci express* functions. the value of for ide redirection function is loaded from the eeprom word 19h bit 13. 3:0 capability version(cap_version) ? ro. indicates the pci express capability structure version number 0001b.
894 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.34 pci express_dev_cap ? pci express* device capability register (bn:f7) offset address: e4?e7h attribute: ro, r/w, r/wc default value: 00000cc1h size: 32 bits 25.6.35 pci express_dev_cont ? pci express* device control register (bn:f7) offset address: e8?e9h attribute: ro, r/w default value: 2810h size: 16 bits bit description 31:28 reserved. 27:26 slot power limit scale ? ro. used in upstream port only. hardwired to 00b. 25:18 slot power limit value ? ro. used in upstream port only. hardwired to 00b 17:15 reserved. 14 power indicator present ? ro. hardwired to 0b 13 attention indicator present ? ro. hardwired to 0b 12 attention button present ? ro. hardwired to 0b 11:9 endpoint l1 acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan core can withstand due to the transition from l1 state to the l0 state. all functions share the same value loaded from the eeprom pci express* init configuration 1 word 18h 8:6 endpoint l0s acceptable latency ? ro. this field indicates the acceptable latency that intel ? 6321esb i/o controller hub lan core can withstand due to the transition from l0s state to the l0 state. all functions share the same value loaded from the eeprom pci express init configuration 1 word 18h. 5 extended tag field supported ? ro. indicates the pci express capability structure version number 0001b. 4:3 phantom function supported ? ro. indicates the type of pci express functions. hardwired to 0001b 2:0 max payload size supported ? ro. indicates the type of pci express functions. hardwired to 0001b bit description 15 reserved. 14:12 max read request size - this field sets maximum read request size for the device as a requester. the default value is 010b (512b) for the lan devices. 11 enable no snoop ? r/w. snoop is gated by nonsnoop bits in the gcr register in the csr space. default is 1b 10 auxiliary power pm enable - when set enables the device to draw aux power independent of pme aux power. intel ? 6321esb i/o controller hub lan core is a multi function device, therefore allowed to draw aux power if at least one of the functions has this bit sets 9 phantom function enable ? rw. hardwired to 0b 8 extended tag field enable ? rw. hardwired to 0b 7:5 max payload size ? rw. slot option not implemented hardwired to 0. 4 enable relaxed ordering ? if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request reporting enable ? rw. enable error report. 2 fatal error reporting enable ? rw. enable error report. 1 non-fatal error reporting enable ? rw. enable error report. 0 correctable error reporting enable ? rw. enable error report.
intel ? 631xesb/632xesb i/o controller hub datasheet 895 lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.36 pci express_dev_status ? pci express* device status register (bn:f7) offset address: ea?ebh attribute: ro, r/w, r/wc default value: 0000h size: 16 bits 25.6.37 pci express_link_cap ? pci express* link capability register (bn:f7) offset address: ec?efh attribute: ro, r/w default value: see description size: 16 bits bit description 15:6 reserved. 5 transaction pending ? ro. slot option not implemented hardwired to 0. 4 aux power detected ? ro. if this bit is set, the device is permitted to set the relaxed ordering bit in the attribute field of write transactions that do not need strong ordering. default to 1b 3 unsupported request detected ? r/wc. enable error report. 2 fatal error detected ? r/wc. enable error report. 1 non-fatal error detected ? r/wc. enable error report. 0 correctable error detected ? r/wc. enable error report. bit description 31:24 port number ? ro. the pci express* port number for the given pci express link. field is set in the link training phase. default to 0x0. 23:18 reserved. 17:15 l1 exit latency - indicates the exit latency from l1 to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h. default to 110b (32-64us). 14:12 l0s exit latency - indicates the exit latency from l0s to l0 state. this field is loaded from the eeprom pci express init configuration 1 word 18h (two values for common pci express clock or separate pci express clock). default to 001b (64-128ns). 11:10 active state link pm support ? ro. indicates the level of active state power management supported in intel ? 6321esb i/o controller hub lan core. defined encodings are: 00b reserved 01b l0s entry supported 10b reserved 11b l0s and l1 supported this field is loaded from the eeprom pci express init configuration 3 word 1ah.default to 11b 9:4 max link width ? ro. indicates the max link width. intel ? 6321esb i/o controller hub lan controller can support by 1 and by 4-link width. the field is loaded from the eeprom pci express init configuration 3 word 1ah with a default value of 4 lanes. default to 00100b. 3:0 max link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b
896 intel ? 631xesb/632xesb i/o controller hub datasheet lan controller and bmc registers (bn:f0/f1/f2/f3/f4/f5/f7) 25.6.38 pci express_link_cont ? pci express* link control register (bn:f7) offset address: f0?f1h attribute: r/w default value: 0000h size: 16 bits 25.6.39 pci express_link_status ? pci express* link status register (bn:f7) offset address: f2?f3h attribute: r/w default value: 1011h size: 16 bits bit description 15:8 reserved. 7 extended synch ? rw. this bit forces extended tx of fts ordered set in fts and extra ts2 at exit from l1 prior to enter l0. 6 common clock configuration ? rw. when set indicates that intel ? 6321esb i/o controller hub and the component at the other end of the link are operating with a common reference clock. a value of 0 indicates that they operating with an asynchronous clock. this parameter affects the l0s exit latencies. 5 retrain clock ? ro. not applicable for endpoint devices, hardwired to 0. 4 link disable ? ro. not applicable for endpoint devices, hardwired to 0. 3 read completion boundary ? rw. 2 reserved. 1:0 active state link pm control ? r/w. this field controls the active state pm supported on the link. link pm functionality is determined by the lowest common denominator of all functions. defined encodings are: 00b pm disabled 01b l0s entry supported 10b reserved 11b l0s and l1 supported bit description 15:13 reserved. 12 slot clock configuration ? when set, it indicates it uses the physical reference clock that the platform provides on the connector. this bit must be cleared uses an independent clock. default to be 1b. 11 link training ? ro. indicates that link training is in progress. 10 link training error ? ro. indicates that link training error has occurred. 9:4 negotiated link width ? ro. indicates the negotiated width of the link. 000001b = x1 000100b = x4 3:0 link speed ? ro. indicates a max link speed of 2.5 gbps. default to 0001b
intel ? 631xesb/632xesb i/o controller hub datasheet 897 high-precision event timer registers 26 high-precision event timer registers the timer registers are memory-mapped in a non-indexed scheme. this allows the processor to directly access each register without having to use an index register. the timer register space is 1024 bytes. the registers are generally aligned on 64-bit boundaries to simplify implementation with ia64 processors. there are four possible memory address ranges beginning at 1) fed0_0000h, 2) fed0_1000h, 3) fed0_2000h., 4) fed0_3000h. the choice of address range will be selected by configuration bits in high precision timer configuration register (offset 3404h in the memory mapped chipset configuration registers). behavioral rules: 1. software must not attempt to read or write across register boundaries. for example, a 32-bit access should be to offset x0h, x4h, x8h, or xch. 32-bit accesses should not be to 01h, 02h, 03h, 05h, 06h, 07h, 09h, 0ah, 0bh, 0dh, 0eh, or 0fh. any accesses to these offsets will result in an unexpected behavior, and may result in a master abort. however, these accesses should not result in system hangs. 64- bit accesses can only be to x0h and must not cross 64-bit boundaries. 2. software should not write to read-only registers. 3. software should not expect any particular or consistent value when reading reserved registers or bits. 26.1 memory mapped registers table 26-1. memory-mapped registers (sheet 1 of 2) offset mnemonic register default type 000?007h gcap_id general capabilities and identification 0429b17f80 86a201h ro 008?00fh ? reserved ? ? 010?017h gen_conf general configuration 0000h r/w 018?01fh ? reserved ? ? 020?027h gintr_sta general interrupt status 0000h r/wc 028?0efh ? reserved ? ? 0f0?0f7h main_cnt main counter value n/a r/w 0f8?0ffh ? reserved ? ? 100?107h tim1_conf timer 0 configuration and capabilities n/a r/w 108?10fh tim1_comp timer 0 comparator value n/a r/w 110?11fh ? reserved ? ? 120?127h tim2_conf timer 1 configuration and capabilities n/a r/w 128?12fh tim2_comp timer 1 comparator value n/a r/w 130?13fh ? reserved ? ? 140?147h tim3_conf timer 2 configuration and capabilities n/a r/w
898 intel ? 631xesb/632xesb i/o controller hub datasheet high-precision event timer registers notes: 1. reads to reserved registers or bits will return a value of 0. 2. software must not attempt locks to the memory-mapped i/o ranges for high-precision timers. if attempted, the lock is not honored, which me ans potential deadlock conditions may occur. 26.1.1 gcap_id ? general capabilities and identification register address offset: 00h attribute: ro default value: 0429b17f8086a201h size: 64 bits 26.1.2 gen_conf ? general configuration register address offset: 010h attribute: r/w default value: 0000000000000000h size: 64 bits 148?14fh tim3_comp timer 2 comparator value n/a r/w 150?15fh ? reserved ? ? 160?3ffh ? reserved ? ? table 26-1. memory-mapped registers (sheet 2 of 2) offset mnemonic register default type bit description 63:32 main counter tick period (counter_clk_per_cap) ? ro. this field indicates the period at which the counter increments in femptoseconds (10^-15 seconds). this will return 0429b17f when read. this indicates a period of 69841279 fs (69.841279 ns). 31:16 vendor id capability (vendor_id_cap) ? ro. this is a 16-bit value assigned to intel. 15 legacy replacement rout capable (leg_rt_cap) ? ro. hardwired to 1. legacy replacement interrupt rout option is supported. 14 reserved. this bit returns 0 when read. 13 counter size capability (count_size_cap) ? ro. hardwired to 1. counter is 64-bit wide. 12:8 number of timer capability (num_tim_cap) ? ro. this field indicates the number of timers in this block. 02h = three timers. 7:0 revision identification (rev_id) ? ro. this indicates which revision of the function is implemented. default value will be 01h. bit description 63:2 reserved. these bits return 0 when read. 1 legacy replacement rout (leg_rt_cnf) ? r/w. if the enable_cnf bit and the leg_rt_cnf bit are both set, then the interrupts will be routed as follows: ? timer 0 is routed to irq0 in 8259 or irq2 in the i/o apic ? timer 1 is routed to irq8 in 8259 or irq8 in the i/o apic ? timer 2-n is routed as per the routing in the timer n config registers. ? if the legacy replacement rout bit is set, the individual routing bits for timers 0 and 1 (apic) will have no impact. ? if the legacy replacement rout bit is not set, the individual routing bits for each of the timers are used. ? this bit will default to 0. bios can set it to 1 to enable the legacy replacement routing, or 0 to disable the legacy replacement routing. 0 overall enable (enable_cnf) ? r/w. this bit must be set to enable any of the timers to generate interrupts. if this bit is 0, then the main counter will halt (will not increment) and no interrupts will be caused by any of these timers. fo r level-triggered interrupts, if an interrupt is pending when the enable_cnf bit is changed from 1 to 0, the interrupt status indications (in the various txx_int_sts bits) will not be cleared. softwa re must write to the txx_int_sts bits to clear the interrupts. note: this bit will default to 0. bios can set it to 1 or 0.
intel ? 631xesb/632xesb i/o controller hub datasheet 899 high-precision event timer registers 26.1.3 gintr_sta ? general interrupt status register address offset: 020h attribute: r/w, r/wc default value: 0000000000000000h size: 64 bits . 26.1.4 main_cnt ? main counter value register address offset: 0f0h attribute: r/w default value: n/a size: 64 bits . 26.1.5 timn_conf ? timer n configuration and capabilities register address offset: timer 0: 100?107h, attribute: ro, r/w timer 1: 120?127h, timer 2: 140?147h default value: n/a size: 64 bits note: the letter n can be 0, 1, or 2, referring to timer 0, 1 or 2. bit description 63:3 reserved. these bits will return 0 when read. 2 timer 2 interrupt active (t02_int_sts) ? r/w. same functionality as timer 0. 1 timer 1 interrupt active (t01_int_sts) ? r/w. same functionality as timer 0. 0 timer 0 interrupt active (t00_int_sts) ? r/wc. the functionality of this bit depends on whether the edge or level-triggered mode is used for this timer. (default = 0) if set to level-triggered mode: this bit will be set by hardware if the corresponding timer interrupt is active. once the bit is set, it can be cleared by software writing a 1 to the same bit position. writes of 0 to this bit will have no effect. if set to edge-triggered mode: this bit should be ignored by software. software should always write 0 to this bit. note: defaults to 0. in edge triggered mode, this bit will always read as 0 and writes will have no effect. bit description 63:0 counter value (counter_val[63:0]) ? r/w. reads return the current value of the counter. writes load the new value to the counter. notes: 1. writes to this register should only be done while the counter is halted. 2. reads to this register return the current value of the main counter. 3. 32-bit counters will always return 0 for the upper 32-bits of this register. 4. if 32-bit software attempts to read a 64-bit counter, it should first halt the counter. since this delays the interrupts for all of the timers, this should be done only if the consequences are understood. it is strongly recommended that 32-bit software only operate the timer in 32-bit mode. 5. reads to this register are monotonic. no two consecutive reads return the same value. the second of two reads always returns a larger value (unless the timer has rolled over to 0).
900 intel ? 631xesb/632xesb i/o controller hub datasheet high-precision event timer registers bit description 63:56 reserved. these bits will return 0 when read. 55:52, 43 timer interrupt rout capability (timern_int_rout_cap) ? ro. timer 0, 1:bits 52, 53, 54, and 55 in this field (corresponding to irq 20, 21, 22, and 23) have a value of 1. writes will have no effect. timer 2:bits 43, 52, 53, 54, and 55 in this fiel d (corresponding to irq 11, 20, 21, 22, and 23) have a value of 1. writes will have no effect. note: if irq 11 is used for hpet #2, software should ensure irq 11 is not shared with any other devices to guarantee the proper operation of hpet #2. 51:44, 42:14 reserved . these bits return 0 when read. 13:9 interrupt rout (timern_int_rout_cnf) ? r/w. this 5-bit field indicates the routing for the interrupt to the i/o (x) apic. software writes to th is field to select which interrupt in the i/o (x) will be used for this timer?s interrupt. if the value is not supported by this particular timer, then the value read back will not match what is written. the software must only write valid values. notes: 1. if the legacy replacement rout bit is set, then timers 0 and 1 will have a different routing, and this bit field has no effect for those two timers. 2. timer 0,1: software is responsible to make sure it programs a valid value (20, 21, 22, or 23) for this field. the intel ? 6321esb i/o controller hub logic does not check the validity of the value written. 3. timer 2: software is responsible to make sure it programs a valid value (11, 20, 21, 22, or 23) for this field. the intel ? 6321esb i/o controller hub logic does not check the validity of the value written. 8 timer n 32-bit mode (timern_32mode_cnf) ? r/w or ro. software can set this bit to force a 64-bit timer to behave as a 32-bit timer. timer 0:bit is read/write (default to 0). 1 = 64 bit; 0 = 32 bit timers 1, 2:hardwired to 0. writes have no effect (since these two timers are 32-bits). 7 reserved . this bit returns 0 when read. 6 timer n value set (timern_val_set_cnf) ? r/w. software uses this bit only for timer 0 if it has been set to periodic mode. by writing this bit to a 1, the software is then allowed to directly set the timer?s accumulator. software does not have to write this bit back to 1 (it automatically clears). software should not write a 1 to this bit position if the timer is set to non-periodic mode. note: this bit will return 0 when read. writes will only have an effect for timer 0 if it is set to periodic mode. writes will have no effect for timers 1 and 2. 5 timer n size (timern_size_cap) ? ro. this read only field indicates the size of the timer. timer 0:value is 1 (64-bits). timers 1, 2:value is 0 (32-bits). 4 periodic interrupt capable (timern_per_int_cap) ? ro. if this bit is 1, the hardware supports a periodic mode for this timer?s interrupt. timer 0: hardwired to 1 (supports the periodic interrupt). timers 1, 2: hardwired to 0 (does not support periodic interrupt). 3 timer n type (timern_type_cnf) ? r/w or ro. timer 0:bit is read/write. 0 = disable timer to ge nerate periodic interrupt; 1 = enable timer to generate a periodic interrupt. timers 1, 2: hardwired to 0. writes have no affect.
intel ? 631xesb/632xesb i/o controller hub datasheet 901 high-precision event timer registers note: reads or writes to unimplemented timers should not be attempted. read from any unimplemented registers will return an undetermined value. 26.1.6 timn_comp ? timer n comparator value register address offset: timer 0: 108h?10fh, timer 1: 128h?12fh, timer 2: 148h?14fh attribute: r/w default value: n/a size: 64 bit 2 timer n interrupt enable (timern_int_enb_cnf) ? r/w. this bit must be set to enable timer n to cause an interrupt when it times out. 1 = enable. 0 = disable (default). the timer can still count and generate appropriate status bits, but will not cause an interrupt. 1 timer interrupt type (timern_int_type_cnf) ? r/w. 0 =the timer interrupt is edge triggered. this means that an edge-type interrupt is generated. if another interrupt occurs, another edge will be generated. 1 =the timer interrupt is level triggered. this means that a level-triggered interrupt is generated. the interrupt will be held active until it is clea red by writing to the bit in the general interrupt status register. if another interrupt occurs befo re the interrupt is cleared, the interrupt will remain active. 0 reserved . these bits will return 0 when read. bit description bit description 63:0 timer compare value ? r/w. reads to this register return the current value of the comparator timers 0, 1, or 2 are configured to non-periodic mode: writes to this register load the value against which the main counter should be compared for this timer. ? when the main counter equals the value last written to this register, the corresponding interrupt can be generated (if so enabled). ? the value in this register does not change based on the interrupt being generated. timer 0 is configured to periodic mode: ? when the main counter equals the value last written to this register, the corresponding interrupt can be generated (if so enabled). ? after the main counter equals the value in this register, the value in this register is increased by the value last written to the register. for example, if the value written to the register is 00000123h, then 1. an interrupt will be generated when the main counter reaches 00000123h. 2. the value in this register will then be adjusted by the hardware to 00000246h. 3. another interrupt will be generated when the main counter reaches 00000246h 4. the value in this register will then be adjusted by the hardware to 00000369h ? as each periodic interrupt occurs, the value in this register will increment. when the incremented value is greater than the maximum value possible for this register (ffffffffh for a 32-bit timer or ffffffffffffffffh for a 64-bit timer), the value will wrap around through 0. for example, if the current value in a 32-bit timer is ffff0000h and the last value written to this register is 20000, then after the next interrupt the value will change to 00010000h default value for each timer is all 1s for the bits that are implemented. for example, a 32-bit timer has a default value of 00000000ffffffffh. a 64-bit timer has a default value of ffffffffffffffffh.
902 intel ? 631xesb/632xesb i/o controller hub datasheet high-precision event timer registers


▲Up To Search▲   

 
Price & Availability of NQ6311

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X